Пд спу 2010 conversion error from string

Модераторы: kdv, dimitr

Модераторы: kdv, dimitr

DastiX

Сообщения: 1
Зарегистрирован: 27 янв 2010, 03:47

conversion error from string » «

Доброго времени суток)

Совсем недавно начал изучение Firebird, по этому если что не так — не судите строго.
Собственно сабж.

Есть firebird 2.0 WI-V2.0.1.12855, работает на VMware 6.5, WinXP 32bit.
Через IBExpert созданы три таблицы: одна главная и две подчиненные.
К примеру главная ФИРМЫ и подчиненные ЛЮДИ и ТЕХНИКА.
Хочу соответственно, что бы одной строке в главной соответствовало несколько строк в подчиненной.
Т.е. в главной таблице ФИРМЫ есть поле ЛЮДИ, и поле ТЕХНИКА типа INTEGER;
Бегаем по фирмам -> отображаются только те люди и техника, которые относятся к этой фирме.
Так вот. Создаю в главной таблице два уникальных поля типа INTEGER, пытаюсь ввести данные — все ок.
В каждой подчиненной по одному полю для внешнего ключа.
Назначаю внешний ключ в таблице ЛЮДИ — все ок. Ввожу данные в поле ЛЮДИ в таблице ФИРМЫ — ок,
в IBExpert можно посмотреть через MasterDetail что определенной фирме соответствует определенный список людей.
И тут самое интересное, назначаю внешний ключ в таблице ТЕХНИКА, все прокатывает.
Но как только пытаюсь ввести данные в главной таблице, в поле ТЕХНИКА появляется ошибка
<<Overflow occurred durig data type conversion
conversion error from string » »
[00543BBF]>> хотя ввожу число.
Дальше интереснее. Удаляю из таблицы ТЕХНИКА внешний ключ(индекс) — ок.
Пытаюсь удалить ограничение на уникальность поля ТЕХНИКА в таблице ФИРМЫ, создается тразакция, все ок, нажимаю Commit,
и получаю deadlock. Хотя вроде все закрыто….
Пробую еще раз и получаю сообщение
<<This operation is not defined for system tables.
unsuccessful metadata update.
object INDEX is in use.
Changes will be rolled back…>>
После этого IBExpert зависает при закрытии, а при принудительном завершении соответственно отчет об ошибке.
Переоткрываю и удалю ограничение на уникальность…
В может быть тут дело не пойму. Откуда эта ошибка неизвестно…

Сколько уже написал, надеюсь кто-нибудь прочитает…заранее спасибо за ответы….


kdv

Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: conversion error from string » «

Сообщение

kdv » 27 янв 2010, 18:20

conversation — это общение. conversion — конверсия, конвертация. Исправил.

По сути — либо сообщение не то из-за неправильного firebird.msg (результат установки разных версий IB/ФБ на одном компе), либо действительно раньше было char/varchar, а потом поменяли на integer, или наоборот.

Если второе, то это обычно следствие модификации структуры таблиц, наполненных данными. Причем не просто модификации, а из IBExpert.
Рекомендую извлечь скрипт БД, создать из него базу по новой, причем обновить ФБ, а то 2.0.1 как то не очень, и перелить данные из старой покоцанной БД в новую.


Содержание

  1. iBase.ru Forum
  2. conversion error from string » «
  3. conversion error from string » «
  4. Ошибка преобразования даты и/или времени из символьной строки при вставке датавремя
  5. 12 ответов:
  6. ODBC (мой любимый, так как он обрабатывается как реальные тип сразу)
  7. ISO8601 (самое лучшее для везде)
  8. Unseperated (крошечный риск быть неправильно истолкованным как число)
  9. хорошо иметь в виду: неверные даты, как правило, появляются с странные ошибки
  10. еще одна причина странных ошибок преобразования: порядок выполнения!
  11. Conversion error from string перевод на

iBase.ru Forum

Форум по InterBase, Firebird и Yaffil

  • Темы без ответов
  • Активные темы
  • Поиск
  • Наша команда

conversion error from string » «

Модераторы: kdv, dimitr

conversion error from string » «

Сообщение DastiX » 27 янв 2010, 04:35

Доброго времени суток)

Совсем недавно начал изучение Firebird, по этому если что не так — не судите строго.
Собственно сабж.

Есть firebird 2.0 WI-V2.0.1.12855, работает на VMware 6.5, WinXP 32bit.
Через IBExpert созданы три таблицы: одна главная и две подчиненные.
К примеру главная ФИРМЫ и подчиненные ЛЮДИ и ТЕХНИКА.
Хочу соответственно, что бы одной строке в главной соответствовало несколько строк в подчиненной.
Т.е. в главной таблице ФИРМЫ есть поле ЛЮДИ, и поле ТЕХНИКА типа INTEGER;
Бегаем по фирмам -> отображаются только те люди и техника, которые относятся к этой фирме.
Так вот. Создаю в главной таблице два уникальных поля типа INTEGER, пытаюсь ввести данные — все ок.
В каждой подчиненной по одному полю для внешнего ключа.
Назначаю внешний ключ в таблице ЛЮДИ — все ок. Ввожу данные в поле ЛЮДИ в таблице ФИРМЫ — ок,
в IBExpert можно посмотреть через MasterDetail что определенной фирме соответствует определенный список людей.
И тут самое интересное, назначаю внешний ключ в таблице ТЕХНИКА, все прокатывает.
Но как только пытаюсь ввести данные в главной таблице, в поле ТЕХНИКА появляется ошибка
> хотя ввожу число.
Дальше интереснее. Удаляю из таблицы ТЕХНИКА внешний ключ(индекс) — ок.
Пытаюсь удалить ограничение на уникальность поля ТЕХНИКА в таблице ФИРМЫ, создается тразакция, все ок, нажимаю Commit,
и получаю deadlock. Хотя вроде все закрыто.
Пробую еще раз и получаю сообщение
>
После этого IBExpert зависает при закрытии, а при принудительном завершении соответственно отчет об ошибке.
Переоткрываю и удалю ограничение на уникальность.
В может быть тут дело не пойму. Откуда эта ошибка неизвестно.

Сколько уже написал, надеюсь кто-нибудь прочитает. заранее спасибо за ответы.

Источник

Ошибка преобразования даты и/или времени из символьной строки при вставке датавремя

Я пытаюсь создать таблицу следующим образом:

сначала я попробовал вставить значения, как показано ниже

Он дал ошибку говоря,

не удается преобразовать varchar в datetime

затем я попробовал ниже формат как один из сообщений, предложенных нашим stackoverflow,

но я все еще получаю сообщение об ошибке сказав,

ошибка преобразования дата и / или время из символьной строки

12 ответов:

существует множество форматов, поддерживаемых SQL Server-см. MSDN книги онлайн на литье и конвертировать. Большинство из этих форматов зависимая на какие настройки у вас есть — поэтому эти настройки могут работать несколько раз — а иногда и нет.

способ решить эту проблему-использовать (слегка адаптированный)формат даты ISO-8601 что поддерживается SQL Server — этот формат работает всегда — независимо от вашего SQL Server язык и dateformat.

The формат ISO-8601 поддерживается SQL Server поставляется в двух вариантах:

  • YYYYMMDD только для дат (без временной части); Примечание здесь:без черточек!, это очень важно! YYYY-MM-DD — это не независимо от параметров dateformat в вашем SQL Server и будет не работа во всех ситуациях!
  • YYYY-MM-DDTHH:MM:SS для даты и время-обратите внимание здесь: этот формат и тире (но они можете опускается), а фиксированный T как разделитель между датой и временем часть вашего DATETIME .

это допустимо для SQL Server 2000 и новее.

так что в вашем конкретном случае — использовать эти строки:

и вы должны быть в порядке (Примечание: Вы должны использовать международный 24 часа формат, а не 12-часовой формат AM / PM для этого.)

как вариант: если вы находитесь на SQL Server 2008 или новее, вы также можете использовать DATETIME2 тип данных (вместо обычного DATETIME ) и текущего INSERT будет работать без каких-либо проблем! : -) DATETIME2 намного лучше и намного менее разборчивы в преобразованиях — и это рекомендуемые типы данных даты/времени для SQL Server 2008 или более новых в любом случае.

не спрашивайте меня, почему вся эта тема-это так сложно и несколько сбивает с толку-вот так оно и есть. Но с помощью YYYYMMDD формат, вы должны быть в порядке для любой версии SQL Server и для любого языка и dateformat настройки в SQL Server.

преобразование в SQL server иногда не удается из-за используемых форматов даты или времени, это просто потому, что вы пытаетесь сохранить неправильные данные, которые не приемлемы для системы.

Create Table MyTable (MyDate);

Insert Into MyTable(MyDate) Values (‘2015-02-29’);

SQL server выдаст следующую ошибку:

Conversion failed when converting date and/or time from character string.

причина этой ошибки просто нет такой даты (февраль-29) В Год (2015).

простой ответ-5 итальянский » yy «и 105 итальянский»yyyy». Таким образом:

будет работать правильно, но

выдаст ошибку, где, как

по возможности следует избегать конкретных литералов даты/времени культуры.

есть немного безопасное форматы для предоставления даты / времени в виде литерала:

все примеры для 2016-09-15 17:30:00

ODBC (мой любимый, так как он обрабатывается как реальные тип сразу)

  • —Штамп Времени
  • —Дата только
  • —время только

ISO8601 (самое лучшее для везде)

  • ‘2016-09-15T17:30:00’ —будьте в курсе T в середине!

Unseperated (крошечный риск быть неправильно истолкованным как число)

  • ‘20160915’ —только для чисто дата

хорошо иметь в виду: неверные даты, как правило, появляются с странные ошибки

  • там нет 31 июня или 30-го февраля.

еще одна причина странных ошибок преобразования: порядок выполнения!

SQL-сервер хорошо знает, чтобы делать вещи в порядке выполнения, который можно было бы не ожидать. Ваше письменное заявление выглядит так, как будто преобразование сделано до какое — то действие, связанное с типом, происходит, но двигатель решает — почему-то-сделать преобразование на более позднем этапе.

просто обновите формат даты, как показано ниже

это решает проблему для меня, и он отлично работает

Источник

Conversion error from string перевод на

Шустрый

Профиль
Группа: Участник
Сообщений: 52
Регистрация: 7.1.2003
Где: Днепропетровск, U A

Репутация: нет
Всего: нет

Нужно в качестве входного параметра ХП передать имя поля, по которому будет делаться выборка значения из таблицы
Пишу ХП

3D-Dragon
Дата 4.2.2003, 12:31 (ссылка) | (нет голосов) Загрузка .
Код
ALTER PROCEDURE GET_COUNTRY (
NAME_FIELD VARCHAR(30),
RETURNS (
SOME_VAR VARCHAR(25))
AS
begin
SELECT :NAME_FIELD
FROM SOME_TABLE
INTO :SOME_VAR;
end

Перед выполнением даю на вход ХП значение, например COUNTRY (такое поле есть в таблице)
Запускаю ХП получаю ошибку:

Overflow occurred during data type conversion.
conversion error from string «COUNTRY».

Научите, пож-та, правильно передать название поля внутрь ХП !

Это сообщение отредактировал(а) 3D-Dragon — 4.2.2003, 12:32

Vit
Дата 4.2.2003, 13:39 (ссылка) | (нет голосов) Загрузка .

Vitaly Nevzorov

Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: нет
Всего: 207

AntonSaburov
Дата 4.2.2003, 18:21 (ссылка) | (нет голосов) Загрузка .

Штурман

Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 118

Medved
Дата 4.2.2003, 19:03 (ссылка) | (нет голосов) Загрузка .

Эксперт

Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: нет
Всего: 154

Шустрый

Профиль
Группа: Участник
Сообщений: 52
Регистрация: 7.1.2003
Где: Днепропетровск, U A

Репутация: нет
Всего: нет

3D-Dragon
Дата 4.2.2003, 21:06 (ссылка) | (нет голосов) Загрузка .
Baa
Дата 4.2.2003, 22:25 (ссылка) | (нет голосов) Загрузка .

Эксперт

Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: нет
Всего: 12

Medved
Дата 4.2.2003, 22:30 (ссылка) | (нет голосов) Загрузка .

Эксперт

Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: нет
Всего: 154

AntonSaburov
Дата 4.2.2003, 22:37 (ссылка) | (нет голосов) Загрузка .

Штурман

Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 118

У меня тоже подозрение, что так не получится.
Я помню, что в MS SQL можно было через вызов

такую штуку провернуть. Но вот в Interbase — не знаю.

Шустрый

Профиль
Группа: Участник
Сообщений: 52
Регистрация: 7.1.2003
Где: Днепропетровск, U A

Репутация: нет
Всего: нет

Всем спасибо !
Реализовал без ХП простым запросом.

3D-Dragon
Дата 5.2.2003, 03:54 (ссылка) | (нет голосов) Загрузка .
AntonSaburov
Дата 6.2.2003, 19:39 (ссылка) | (нет голосов) Загрузка .

Штурман

Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 118

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД — ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ — ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Firebird, Interbase | Следующая тема »

[ Время генерации скрипта: 0.1291 ] [ Использовано запросов: 21 ] [ GZIP включён ]

Источник

Adblock
detector

    msm.ru

    Нравится ресурс?

    Помоги проекту!

    !
    информация о разделе

    user posted image Данный раздел предназначается исключительно для обсуждения вопросов использования языка запросов SQL. Обсуждение общих вопросов, связанных с тематикой баз данных — обсуждаем в разделе «Базы данных: общие вопросы». Убедительная просьба — соблюдать «Правила форума» и не пренебрегать «Правильным оформлением своих тем». Прежде, чем создавать тему, имеет смысл заглянуть в раздел «Базы данных: FAQ», возможно там уже есть ответ.

    >
    conversion error from string

    • Подписаться на тему
    • Сообщить другу
    • Скачать/распечатать тему



    Сообщ.
    #1

    ,
    04.08.06, 05:37

      Senior Member

      ****

      Рейтинг (т): 59

      Всем привет, БД IB 1.5 делаю следующий запрос

      ExpandedWrap disabled

        delete from spool where id = ‘{2EE94DD7-7AB4-4424-87A5-3FE2A61C7702}’

      и выдает ошибку
      Overflow occurred during data type conversion.
      conversion error from string «{2EE94DD7-7AB4-4424-87A5-3FE2A61C7702}».
      Как это полечить?
      спаисбо за рание


      SilverShield



      Сообщ.
      #2

      ,
      04.08.06, 06:13

        Full Member

        ***

        Рейтинг (т): 11

        IB 1.5 :o ? А у тебя id точно строковое? Попробуй поставить не одинарные, а двойные кавычки (т.е. не ‘ а «)

        Wizard

        Bas



        Сообщ.
        #3

        ,
        04.08.06, 06:36

          Цитата Nahel @ 04.08.06, 05:37

          conversion error from string

          Тут явно идет конвертация из строки во чтото другое.


          Nahel



          Сообщ.
          #4

          ,
          04.08.06, 06:59

            Senior Member

            ****

            Рейтинг (т): 59

            Раньше id был интегер сечас CHAR(40)
            ковычки пробовал то же самое.
            к стати insert срабатывает на ура

            Wizard

            Bas



            Сообщ.
            #5

            ,
            04.08.06, 08:16

              А связи есть?


              Romkin



              Сообщ.
              #6

              ,
              04.08.06, 08:51

                Проверить Foreign keys, triggers и тд


                Nahel



                Сообщ.
                #7

                ,
                05.08.06, 09:08

                  Senior Member

                  ****

                  Рейтинг (т): 59

                  дело было в следующем в табдице были записи соответственно ID был числовым, после смены ID на CHAR(40) видимо записи коректно не конвертировались, стоило их подпраить ручками и все зафунцикляло.
                  Всем спасибо за помощь

                  Master

                  jack128



                  Сообщ.
                  #8

                  ,
                  05.08.06, 18:20

                    Цитата Nahel @ 04.08.06, 05:37

                    БД IB 1.5

                    класс. Где ты такой раритер достал??? С Абрамса скомуниздил? :D


                    Sanbyter



                    Сообщ.
                    #9

                    ,
                    31.03.11, 10:29

                      Всем привет. У меня примерно такая же ситуация, при записи в БД данных вылетает ошибка:
                      conversion error from string.
                      Сервер: Windows Server 2008, Interbase 7.5.
                      Что самое интересное, локально на сервере все нормально работает, удаленно нет. Тип строки char (32), пробовал изменять длину и сам тип строки, не помогает((. Помогите пожалуйста советом.

                      Wizard

                      Bas



                      Сообщ.
                      #10

                      ,
                      31.03.11, 11:45

                        Что записываем?

                        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)

                        0 пользователей:

                        • Предыдущая тема
                        • Базы данных: SQL
                        • Следующая тема

                        Рейтинг@Mail.ru

                        [ Script execution time: 0,0244 ]   [ 15 queries used ]   [ Generated: 12.02.23, 06:04 GMT ]  

                        Good morning,

                        The following SQL statement runs fine when run in Sql Server 2012, but when I run it through a RDLC 2010 engine within my Kronos application I get the error msg below.  I’m thinking it’s an issue with how the Convert statements are working with
                        the date fields.

                        I would appreciate any suggestions as to how I can get the SQL statement to run within MS Visual Studio.

                        Here are the fld types for each one:

                        psv.applydate     datetime w/length of 8

                        wtke.startdate     datetime w/length of 8

                        wtke.enddate     datetime w/length of 8

                        psv.mgrsignoffthrudtm     datetime w/length of 8

                        psv.prevpayperiodend     datetime w/length of 8

                        SQL Statement

                        SELECT  psv.empno, pe.fullnm, wtke.startdate, (wtke.enddate — 1) as enddate, psv.ee_type, sum(psv.time_amount) as time_amount,
                          psv.earncode, psv.week, psv.tcs_orglvl_code_3,
                          sum(case psv.week  when ’01’ then  psv.time_amount  else 0 end) as Week1Amt,
                          sum(case psv.week  when ’02’ then  psv.time_amount  else 0 end) as Week2Amt
                        FROM  tcsiface.dbo.PAYROLL_SUMMARY_V psv, person pe, mywtkemployee wtke
                        WHERE  psv.empno = pe.personnum
                          and pe.personid = wtke.personid
                          and (CONVERT(DATETIME, CONVERT(DATE, psv.applydate)) between CONVERT(DATETIME, CONVERT(DATE, wtke.startdate)) and CONVERT(DATETIME, CONVERT(DATE, wtke.enddate)) — 1)
                          and ‘Y’ = (
                             CASE
                              WHEN (:EmpSel = ‘Y’) THEN (
                                    CASE
                                     WHEN CONVERT(DATETIME, CONVERT(DATE ,psv.mgrsignoffthrudtm)) >= CONVERT(DATETIME, CONVERT(DATE ,psv.prevpayperiodend)) THEN ‘Y’
                                     ELSE ‘N’
                                    END
                                    )
                              ELSE ‘Y’
                             END
                            )
                          and wtke.sessionid = :wtksessionid
                        GROUP BY psv.empno, pe.fullnm, wtke.startdate, wtke.enddate, psv.ee_type,
                          psv.earncode, psv.week, psv.tcs_orglvl_code_3
                        ORDER BY psv.tcs_orglvl_code_3,psv.empno, psv.earncode

                        Error Msg

                        SQL Source: .Net SqlClient Data Provider , Message: Conversion failed when converting date and/or time from character string.

                            Source: Kronos.Reporting.DBUtil
                            Stack Trace:
                               at Kronos.Workforce.CommonApp.Reporting.Framework.Utils.DBUtil.SQLDBAccessor.GetDatasetFromQuery(String SQLCommandText)
                               at Kronos.Workforce.CommonApp.Reporting.Business.ProduceRDLCReport.RDLDataSourcePopulator.ExecuteRDLCQuery(RDLDataSetDef dsd)
                               at Kronos.Workforce.CommonApp.Reporting.Business.ProduceRDLCReport.RDLDataSourcePopulator.ProcessRDLCQueries()
                               at Kronos.Workforce.CommonApp.Reporting.Business.ProduceRDLCReport.ReportProcessor.ExportReport()
                            Inner Exception:
                                Type: System.Data.SqlClient.SqlException
                                Message: Conversion failed when converting date and/or time from character string.
                                Source: .Net SqlClient Data Provider

                        Понравилась статья? Поделить с друзьями:

                        Читайте также:

                      • Пвз 3 ошибка подключения
                      • Пбу исправление ошибок прошлых лет
                      • Пахлава получилась сухая как исправить
                      • Пафос творчества пушкина лелеющая душу гуманность ошибка
                      • Патчер для amd видеокарт ошибка 43

                      • 0 0 голоса
                        Рейтинг статьи
                        Подписаться
                        Уведомить о
                        guest

                        0 комментариев
                        Старые
                        Новые Популярные
                        Межтекстовые Отзывы
                        Посмотреть все комментарии