Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.049 c
15-1415727540
Rouse_
2014-11-11 20:39
2015.09.10
Просто для информации :)


3-1304879439
AndreyRus
2011-05-08 22:30
2015.09.10
Тип поля Bit в агрегатных функциях.


15-1416432603
Юрий
2014-11-20 00:30
2015.09.10
С днем рождения ! 20 ноября 2014 четверг


15-1413815317
Юрий Зотов
2014-10-20 18:28
2015.09.10
Встроенный в Windows 7 программный RAID


15-1420742668
Kerk
2015-01-08 21:44
2015.09.10
О безопасности программ на Delphi