Текущий архив: 2015.09.10;
Скачать: CL | DM;
Вниз
0,1 is not a valid BCD value Найти похожие ветки
← →
Дмитрий (2014-04-01 16:56) [0]При заполнении одного из полей формы внезапно полезла ошибка типа "0,1 is not a valid BCD value".
Явно связана с десятичным разделителем, на ввод дробной части ругается.
В базе поле определено `Price` decimal(19,4) DEFAULT "0.0000".
Датасет AnyDAC.TADQuery.
Упоминаемое здесь
http://www.sql.ru/forum/846144/decimalseparator-tfmtbcdfield-i-naglaya-ado
свойство EnableBCD в списке отсутствует.
По какой причине поле перестало работать?
← →
sniknik © (2014-04-01 17:08) [1]возможно запятую берет из локальных настроек (панель управления "язык и региональные настройки"), попробуй поставь там точку.
← →
Дмитрий (2014-04-01 17:53) [2]Поле категорически отказывается принимать точку, с одной стороны.
С другой, точка в одном поле как разделитель совершенно не устраивает.
Обнаружил, проблема связана не с разделителем, а с пробелом перед числом.
Формат отображения выставлен с пробелом между разрядом тысяч и сотен (#_##0.00).
При переходе в режим редактирования перед трех значным числом оказывается пробел, при редактировании части числа вылетает ошибка.
При выделении всего содержимого и вводе числа целиком ошибка не возникает.
После заполнения свойства EditFormat (0.00) проблема исчезла.
← →
Юрий Зотов © (2014-04-02 15:27) [3]Тут еще вот на что напоролись (DB2).
Таблица T:
F1 - число(11, 0)
F2 - char(3)
insert into T (F1, F2) values (123,"XYZ") - выдает ошибку invalid token.
Кто поймет, в чем дело - тому респект и уважуха.
← →
sniknik © (2014-04-02 17:46) [4]а Т тут случаем не от True? в foxpro так было, в смысле T и F зарезервированные переменные.
в кавычки взять... ну в такие какие в DB2 приняты, в mssql было бы [T].
← →
Inovet © (2014-04-02 18:28) [5]> [4] sniknik © (02.04.14 17:46)
Не, там были .T. и .F., просто буква как и любая другая. Это в dbf они хранились, как ты говоришь.
← →
Inovet © (2014-04-02 18:29) [6]
> [3] Юрий Зотов © (02.04.14 15:27)
> insert into T (F1, F2) values (123,"XYZ") - выдает ошибку invalid token.
Неужели надо было 123,0, "XYZ"?
← →
[ВладОшин] © (2014-04-02 19:56) [7]тоже ставлю на cast(123 as число(11,0) )
← →
Юрий Зотов © (2014-04-02 20:07) [8]Братцы, вы не поверите. Даю подсказку:
insert into T (F1, F2) values (123, "XYZ") - все ОК
← →
brother © (2014-04-02 20:26) [9]> 123,"XYZ"
"XYZ" оно думал, что это дробь числа? О_о
← →
Юрий Зотов © (2014-04-02 20:35) [10]Ну да, после запятой парсер ожидал цифру или пробел, а встретил апостроф. Мы были в шоке.
← →
Юрий Зотов © (2014-04-02 20:39) [11]И еще чудо - тот же самый insert, который давал ошибку, без проблем выполнился в той же БД, но через другой клиент.
← →
[ВладОшин] © (2014-04-02 21:23) [12]
> но через другой клиент.
хотел же уточнить насчет ЯП/ПО..
← →
Inovet © (2014-04-02 21:44) [13]Подумал было про пробел, но решил, что слишком глюкотно, оказывается, нет предела.
Другой клиент региональные настройки правильно потдягивал.
← →
Германн © (2014-04-03 02:18) [14]
> Юрий Зотов © (02.04.14 20:39) [11]
>
> И еще чудо - тот же самый insert, который давал ошибку,
> без проблем выполнился в той же БД, но через другой клиент.
>
А что такое "клиент"? Провайдер?
Страницы: 1 вся ветка
Текущий архив: 2015.09.10;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.044 c