TDBEdit - '' is an invalid float

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
7bit
новенький
Сообщения: 43
Зарегистрирован: 01.10.2011 12:35:52

TDBEdit - '' is an invalid float

Сообщение 7bit »

Хочеться прояснить ситуацию с TDBEdit. TDBEdit связан с числовым полем. Если ввести в него число, затем очистить, то при выходе из этого элемента возникает исключение EConvertError: '' is an invalid float. Приходится присваивать Null полю в обработчике OnEditingDone:

Код: Выделить всё

if SQLQuery.State in [dsInsert, dsEdit] then
  if DBEdit.Text = '' then
    DBEdit.Field.Value := Null;

Похожая ситуация, если с DBEdit связано поле с типом Дата.

Компоненты используются стандартные.
Lazarus 0.9.30.2 + Firebird.
Аватара пользователя
Little_Roo
энтузиаст
Сообщения: 639
Зарегистрирован: 27.02.2009 18:56:36
Откуда: Санкт-Петербург

Сообщение Little_Roo »

7bit писал(а):TDBEdit связан с числовым полем. Если ввести в него число, затем очистить, то при выходе из этого элемента возникает исключение


Не замечено ни разу :shock:
Использую порядка 300 tdbedit'ов - и в числовых значениях, и в строковых - полет нормальный....
Копайте код.
7bit
новенький
Сообщения: 43
Зарегистрирован: 01.10.2011 12:35:52

Сообщение 7bit »

Вот небольшой примерчик (второе поле на форме): http://download51.files.mail.ru/NSXMRZ/4f2df60927e8ec8c2f6b8e75c857aa70/TestDBEdit.zip
Экспериментировал с типом поля БД. Оказывается такая ошибка возникает только с типами numeric и decimal.
P.S. Я писал, что с датой то же самое. На самом деле все работает, я ошибся.
Ответить