![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
0,1 is not a valid BCD value [D7, XP, 2003]
Дмитрий © (2014-04-01 16:56:00)При заполнении одного из полей формы внезапно полезла ошибка типа "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 в списке отсутствует.
По какой причине поле перестало работать?
Германн (2014-04-03 02:18:00) [1]
> Юрий Зотов © (02.04.14 20:39) [11]
>
> И еще чудо - тот же самый insert, который давал ошибку,
> без проблем выполнился в той же БД, но через другой клиент.
>
А что такое "клиент"? Провайдер?
Inovet (2014-04-02 21:44:00) [2]Подумал было про пробел, но решил, что слишком глюкотно, оказывается, нет предела.
Другой клиент региональные настройки правильно потдягивал.
[ВладОшин] (2014-04-02 21:23:00) [3]
> но через другой клиент.
хотел же уточнить насчет ЯП/ПО..
Юрий Зотов (2014-04-02 20:39:00) [4]И еще чудо - тот же самый insert, который давал ошибку, без проблем выполнился в той же БД, но через другой клиент.
Юрий Зотов (2014-04-02 20:35:00) [5]Ну да, после запятой парсер ожидал цифру или пробел, а встретил апостроф. Мы были в шоке.
brother (2014-04-02 20:26:00) [6]> 123,'XYZ'
'XYZ' оно думал, что это дробь числа? О_о
Юрий Зотов (2014-04-02 20:07:00) [7]Братцы, вы не поверите. Даю подсказку:
insert into T (F1, F2) values (123, 'XYZ') - все ОК
[ВладОшин] (2014-04-02 19:56:00) [8]тоже ставлю на cast(123 as число(11,0) )
Inovet (2014-04-02 18:29:00) [9]
> [3] Юрий Зотов © (02.04.14 15:27)
> insert into T (F1, F2) values (123,'XYZ') - выдает ошибку invalid token.
Неужели надо было 123,0, 'XYZ'?
Inovet (2014-04-02 18:28:00) [10]> [4] sniknik © (02.04.14 17:46)
Не, там были .T. и .F., просто буква как и любая другая. Это в dbf они хранились, как ты говоришь.
sniknik (2014-04-02 17:46:00) [11]а Т тут случаем не от True? в foxpro так было, в смысле T и F зарезервированные переменные.
в кавычки взять... ну в такие какие в DB2 приняты, в mssql было бы [T].
Юрий Зотов (2014-04-02 15:27:00) [12]Тут еще вот на что напоролись (DB2).
Таблица T:
F1 - число(11, 0)
F2 - char(3)
insert into T (F1, F2) values (123,'XYZ') - выдает ошибку invalid token.
Кто поймет, в чем дело - тому респект и уважуха.
Дмитрий (2014-04-01 17:53:00) [13]Поле категорически отказывается принимать точку, с одной стороны.
С другой, точка в одном поле как разделитель совершенно не устраивает.
Обнаружил, проблема связана не с разделителем, а с пробелом перед числом.
Формат отображения выставлен с пробелом между разрядом тысяч и сотен (#_##0.00).
При переходе в режим редактирования перед трех значным числом оказывается пробел, при редактировании части числа вылетает ошибка.
При выделении всего содержимого и вводе числа целиком ошибка не возникает.
После заполнения свойства EditFormat (0.00) проблема исчезла.
sniknik (2014-04-01 17:08:00) [14]возможно запятую берет из локальных настроек (панель управления "язык и региональные настройки"), попробуй поставь там точку.