![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TDateEdit глючит? [D7, WinXP]
kyn66 © (2007-11-02 10:57:00)Посиавил на форму компонент из набора RX. В ситуации, когда нужна пустая дата при выходе из формы - ошибка, типа не верный тип даты " . . ". Проверка при выходе отключена.
Declaration
property CheckOnExit: Boolean;
Description
Свойство определяет, будет ли проверяться правильность ввода даты в компонентах TDateEdit, TDBDateEdit или допустимый диапазон числа в компонентах TRxCalcEdit, TRxDBCalcEdit, TCurrencyEdit при потере фокуса строкой редактирования.
Если CheckOnExit = True, то в случае ввода недопустимого значения происходит исключение (exception).
Мне нужно, если дата пустая - в базу прописать Null (поле имеет тип Date). Непустое записывается нормально
ZakazTblData_2.Value := StrToDate(DateEdit2.Text);
Как победить ошибку?
Anatoly Podgoretsky (2007-11-02 12:35:00) [1]> kyn66 (02.11.2007 11:39:19) [19]
> IIF(DateEdit2.Date = 0, 0, DateEdit2.Date
Давно такого дурдома не встречал
kyn66 (2007-11-02 11:42:00) [2]
> ЮЮ © (02.11.07 11:34) [18]
> IIF(DateEdit2.Date = 0, NULL, DateEdit2.Date),
Все, проверил, этот вариант работает, ВСЕМ Спасибо!
Ega23 (2007-11-02 11:40:00) [3]
> Всеравно пишет 30.12.1899
Что такое тип TdateTime?
kyn66 (2007-11-02 11:39:00) [4]Получается хорошо тока вот так:
ZakazTbl.InsertRecord([Nil, RegKod, DateEdit1.Date, Edit1.Text,
Edit2.Text, Edit3.Text, Edit4.Text,
Edit5.Text, Edit6.Text, Edit7.Text, Edit8.Text,
IIF(DateEdit2.Date = 0, 0, DateEdit2.Date), Edit9.Text, Memo1.Text]);
if DateEdit2.Date = 0 then
begin
ZakazTbl.Edit;
ZakazTblData_2.Clear;
ZakazTbl.Post;
end;
ЮЮ (2007-11-02 11:34:00) [5]IIF(DateEdit2.Date = 0, NULL,DateEdit2.Date),
лучше см.[15]
Reindeer Moss Eater (2007-11-02 11:33:00) [6]IIF(DateEdit2.Date = 0, 0, DateEdit2.Date),
Блеск.
То есть если там ноль, то запиши явный ноль, иначе дату
kyn66 (2007-11-02 11:31:00) [7]
ZakazTbl.InsertRecord([Nil, RegKod, DateEdit1.Date, Edit1.Text,
Edit2.Text, Edit3.Text, Edit4.Text,
Edit5.Text, Edit6.Text, Edit7.Text, Edit8.Text,
IIF(DateEdit2.Date = 0, 0, DateEdit2.Date), Edit9.Text, Memo1.Text]);
Всеравно пишет 30.12.1899, как мне Clearтуда сделать при Insert
ЮЮ (2007-11-02 11:31:00) [8]Для Edit - подходит хорошо,
т.е. не используешь конструкциию типа
ZakazTbl.UpdateRecord([Nil, RegKod, DateEdit1.Date, Edit1.Text :)
для Insert - ща попробую прикрутить
Код отличается одной строкой:
ZakazTblData_2.Insert;
илм
ZakazTblData_2.Edit;
Далее все одинаково:
...
ZakazTblData_2.Value := DateEdit2.Date;
...
ZakazTblData_2.Post;
kyn66 (2007-11-02 11:27:00) [9]Для Edit - подходит хорошо, для Insert - ща попробую прикрутить
ЮЮ (2007-11-02 11:24:00) [10]Ты только писать умеещь? Прочти [6] ЮЮ © (02.11.07 11:06)
>Это пустая дата в Delphi
Это элементарный 0.0
Reindeer Moss Eater (2007-11-02 11:23:00) [11]Что есть то и записывает.
Это пустая дата в Delphi
kyn66 (2007-11-02 11:21:00) [12]Нашел где вываливает. Тока теперь, когда пытаюсь внести в запись поле даты с пустым значением,
ZakazTbl.InsertRecord([Nil, RegKod, DateEdit1.Date, Edit1.Text,
Edit2.Text, Edit3.Text, Edit4.Text,
Edit5.Text, Edit6.Text, Edit7.Text, Edit8.Text,
DateEdit2.Date, Edit9.Text, Memo1.Text]);
В базу записывается не 0, а 30.12.1899
ЮЮ (2007-11-02 11:15:00) [13]> А приведение типа к дате не при чем
Да? Полагаешь StrToDate(' . . ') сработает без исключения? К чему это "приведение", емли есть свойство типа TDate?
kyn66 (2007-11-02 11:13:00) [14]
> f DateEdit2.Date = 0 then ZakazTblData_2.Clearelse ZakazTblData_2.
> Value := DateEdit2.Date;
DB в данном случае не нужен. Обработка класс, однако ну не доходит до нее, ошибка вываливает раньше.
Reindeer Moss Eater (2007-11-02 11:08:00) [15]а зачем на событии?
kyn66 (2007-11-02 11:06:00) [16]Да вопрос больше о том, когда происходит ошибка, на каком событии не могу отловить и как его побороть. А приведение типа к дате не при чем
ЮЮ (2007-11-02 11:06:00) [17]if DateEdit2.Date = 0 then
ZakazTblData_2.Clear
else
ZakazTblData_2.Value := DateEdit2.Date;
З.Ы. Там есть и DB-компонент
Ega23 (2007-11-02 11:02:00) [18]StrToDate(DateEdit2.Text);
КЛАСС!!!!!!!!
Sergey13 (2007-11-02 11:02:00) [19]> [0] kyn66 © (02.11.07 10:57)
> ZakazTblData_2.Value := StrToDate(DateEdit2.Text);
А так если?
ZakazTblData_2.Value := DateEdit2.Date;
DVM (2007-11-02 11:01:00) [20]Все проверки надо производить при нажатии кнопки "Записать в базу"