Форум: "Начинающим";
Текущий архив: 2007.11.25;
Скачать: [xml.tar.bz2];
ВнизTDateEdit глючит? Найти похожие ветки
← →
kyn66 © (2007-11-02 10:57) [0]Посиавил на форму компонент из набора RX. В ситуации, когда нужна пустая дата при выходе из формы - ошибка, типа не верный тип даты " . . ". Проверка при выходе отключена.
Declaration
property CheckOnExit: Boolean;
Description
Свойство определяет, будет ли проверяться правильность ввода даты в компонентах TDateEdit, TDBDateEdit или допустимый диапазон числа в компонентах TRxCalcEdit, TRxDBCalcEdit, TCurrencyEdit при потере фокуса строкой редактирования.
Если CheckOnExit = True, то в случае ввода недопустимого значения происходит исключение (exception).
Мне нужно, если дата пустая - в базу прописать Null (поле имеет тип Date). Непустое записывается нормально
ZakazTblData_2.Value := StrToDate(DateEdit2.Text);
Как победить ошибку?
← →
Reindeer Moss Eater © (2007-11-02 11:00) [1]проверять значеиение перед использованием
← →
Reindeer Moss Eater © (2007-11-02 11:01) [2]StrToDate(DateEdit2.Text);
Чумаааааа.....
← →
DVM © (2007-11-02 11:01) [3]Все проверки надо производить при нажатии кнопки "Записать в базу"
← →
Sergey13 © (2007-11-02 11:02) [4]> [0] kyn66 © (02.11.07 10:57)
> ZakazTblData_2.Value := StrToDate(DateEdit2.Text);
А так если?
ZakazTblData_2.Value := DateEdit2.Date;
← →
Ega23 © (2007-11-02 11:02) [5]StrToDate(DateEdit2.Text);
КЛАСС!!!!!!!!
← →
ЮЮ © (2007-11-02 11:06) [6]if DateEdit2.Date = 0 then
ZakazTblData_2.Clear
else
ZakazTblData_2.Value := DateEdit2.Date;
З.Ы. Там есть и DB-компонент
← →
kyn66 © (2007-11-02 11:06) [7]Да вопрос больше о том, когда происходит ошибка, на каком событии не могу отловить и как его побороть. А приведение типа к дате не при чем
← →
Reindeer Moss Eater © (2007-11-02 11:08) [8]а зачем на событии?
← →
kyn66 © (2007-11-02 11:13) [9]
> f DateEdit2.Date = 0 then ZakazTblData_2.Clearelse ZakazTblData_2.
> Value := DateEdit2.Date;
DB в данном случае не нужен. Обработка класс, однако ну не доходит до нее, ошибка вываливает раньше.
← →
ЮЮ © (2007-11-02 11:15) [10]> А приведение типа к дате не при чем
Да? Полагаешь StrToDate(" . . ") сработает без исключения? К чему это "приведение", емли есть свойство типа TDate?
← →
kyn66 © (2007-11-02 11:21) [11]Нашел где вываливает. Тока теперь, когда пытаюсь внести в запись поле даты с пустым значением,
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
← →
Reindeer Moss Eater © (2007-11-02 11:23) [12]Что есть то и записывает.
Это пустая дата в Delphi
← →
ЮЮ © (2007-11-02 11:24) [13]Ты только писать умеещь? Прочти [6] ЮЮ © (02.11.07 11:06)
>Это пустая дата в Delphi
Это элементарный 0.0
← →
kyn66 © (2007-11-02 11:27) [14]Для Edit - подходит хорошо, для Insert - ща попробую прикрутить
← →
ЮЮ © (2007-11-02 11:31) [15]Для 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:31) [16]
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
← →
Reindeer Moss Eater © (2007-11-02 11:33) [17]IIF(DateEdit2.Date = 0, 0, DateEdit2.Date),
Блеск.
То есть если там ноль, то запиши явный ноль, иначе дату
← →
ЮЮ © (2007-11-02 11:34) [18]IIF(DateEdit2.Date = 0, NULL, DateEdit2.Date),
лучше см.[15]
← →
kyn66 © (2007-11-02 11:39) [19]Получается хорошо тока вот так:
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;
← →
Ega23 © (2007-11-02 11:40) [20]
> Всеравно пишет 30.12.1899
Что такое тип TdateTime?
← →
kyn66 © (2007-11-02 11:42) [21]
> ЮЮ © (02.11.07 11:34) [18]
> IIF(DateEdit2.Date = 0, NULL, DateEdit2.Date),
Все, проверил, этот вариант работает, ВСЕМ Спасибо!
← →
Anatoly Podgoretsky © (2007-11-02 12:35) [22]> kyn66 (02.11.2007 11:39:19) [19]
> IIF(DateEdit2.Date = 0, 0, DateEdit2.Date
Давно такого дурдома не встречал
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.11.25;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.054 c