Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1194095144
savyhinst
2007-11-03 16:05
2007.11.25
Таймер в тхреаде


2-1193827989
F@T@L_Err0r
2007-10-31 13:53
2007.11.25
Скопировать папку


2-1193910412
werb
2007-11-01 12:46
2007.11.25
Узнать включен комп или нет


15-1193055255
Заблудившийся
2007-10-22 16:14
2007.11.25
Пожалуйста, помогите перевести строчку Perl кода на PHP код


1-1189005868
andreoman
2007-09-05 19:24
2007.11.25
доступ из подчененной формы к полю формы-создателя





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский