Главная страница
    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.5 MB
Время: 0.041 c
2-1193965529
ореол
2007-11-02 04:05
2007.11.25
Загрузка содержимого *.doc файла в своем приложении


4-1179087050
DefCon
2007-05-14 00:10
2007.11.25
Сканеры штрих-кодов


15-1193397825
vajo
2007-10-26 15:23
2007.11.25
Нужно внести изменение в текстовом файле на сайте.


3-1184099594
BaryVetaL
2007-07-11 00:33
2007.11.25
Какой движок посоветуете?


6-1164519806
DRtM
2006-11-26 08:43
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский