Форум: "Базы";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];
ВнизОшибка при конвертации строки в дату. Найти похожие ветки
← →
Alexander Panov © (2005-02-07 19:19) [0]Используется FireBird Embeded 1.5, IBDatabase, IBQuery.
Выполняется для нескольких таблиц подряд следующий код:
Q.SQL.Text := "ALTER TABLE ""+Src+"" ADD CHDATE DATE DEFAULT ""NOW""";
Q.ExecSql;
Q.SQL.Text := "UPDATE ""+Src+"" SET CHDATE=""01.01.2004""";
Q.ExecSql;
Для нескольких таблиц код отрабатывает без ошибок, а для некоторых возникает исключение -conversion error from string
Как с этим бороться? Сталкивался кто-нибудь?
← →
Vlad © (2005-02-07 19:35) [1]
> Alexander Panov © (07.02.05 19:19)
Обычно рекомендуют использовать параметры. Особенно если дело касается дат или дробных чисел.
UPDATE MyTable SET CHDATE = :Param
← →
Alexander Panov © (2005-02-07 19:40) [2]Vlad © (07.02.05 19:35) [1]
UPDATE MyTable SET CHDATE = :Param
Так тоже делал. Ошибка та же самая.
Вот код:
Q.SQL.Text := "UPDATE ""+Src+"" SET CHDATE=:pDate";
Q.Params[0].DataType := ftDate;
Q.ParamByName("pDate").AsDate := now-300;
Q.ExecSQL;
← →
Alexander Panov © (2005-02-07 19:57) [3]Очень странно, но если выполнять запрос на добавление поля и его обновление в одной транзакции, то в этом случае происходит такая ошибка(причем не на всех таблицах).
Если же после каждого запроса выполнять завершение транзакции, то всё отрабатывает без ошибок...
← →
Desdechado © (2005-02-07 20:14) [4]В IB строго разделяется изменение метаданных и изменение данных.
В одной транзакции смешивать недопустимо.
← →
Alexander Panov © (2005-02-07 20:45) [5]Desdechado © (07.02.05 20:14) [4]
Спасибо, теперь знать буду.
← →
Fay © (2005-02-07 20:46) [6]2 Vlad © (07.02.05 19:35) [1]
В IB дата в виде "XX.XX.XXXX" - это всегда DD.MM.YYYY.
← →
Deniz (2005-02-08 06:34) [7]И еще не плохо бы на 3 диалект перейти, и вместо DEFAULT NOW использовать DEFAULT current_timestamp или чего там надо.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.039 c