Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.04;
Скачать: CL | DM;

Вниз

Преобразования типа TDateTime   Найти похожие ветки 

 
Nax   (2004-03-10 17:46) [0]

Если в таблице dBase-IV есть поле типа Date и оно содержит некоторую валидную дату, как можно программно обнулить это поле? (например, если поле обозначает дату смерти, а никто еще не умер и дата занесена туда ошибочно).

Устроено так:

Таблица выводится в Грид.
Редактирование в Гриде запрещено. Для этого есть отдельная форма с компонентами Edit.
При редактировании данные считываются посредством
DateToStr(Field.Value)  в RxDateEdit.text и там редактируются.

Симптомы:

Если в Edit.text стереть значение даты и попытаться сделать
Field.Value := StrToDate(RxDateEdit.text) , то возникает ошибка валидности даты. Понятно, что строка "" - не есть дата.
Строка "  .  .    " - тоже не есть дата.

Но как тогда программно обнулить дату в поле?
DBEdit не предлагать.

Как вообще можно проинициализировать переменную пуcтой датой,
чтобы потом закинуть ее значение в поле?
Типа, как в FoxPro:     date1 = CTOD("  .  .    ")

Возможно ли?

Или дата в Делфи не может быть ПУСТОЙ В ПРИНЦИПЕ?

Может у кого примерчик завалялся на эту тему......

Спасибо за внимание!


 
Reindeer Moss Eater ©   (2004-03-10 17:47) [1]

TField.Clear


 
Nax   (2004-03-10 18:47) [2]

Спасибо,  Reindeer Moss Eater, помогло!
Я сделал так:

IF rxDateEdit.text="  .  .    " THEN Field.Clear ELSE Field.Value:=StrToDate(rxDateEdit.text);

Поле в таблице обнуляется (абсолютная пустота).
Теперь, если считывать эту запись в форму для редактирования, то эти пустые поля попадают в rxDateEdit.text в виде "30.12.1899"

Напрашивается обратное решение:

IF DateToStr(Field.Value)="30.12.1899" THEN rxDateEdit.text:="  .  .    " ELSE rxDateEdit.text:=DateToStr(Field.Value);

Есть ли более элегантные решения?

Как еще можно определить, что поле содержит пустую дату, кроме как проверяя условие: DateToStr(Field.Value)="30.12.1899"
и однозначно ли это говорит о том, что дата пуста?
( для SELECT )


 
Johnmen ©   (2004-03-10 18:49) [3]

if Field.IsNull then ...


 
Johnmen ©   (2004-03-10 18:52) [4]

Кстати,
if rxDateEdit.Date=0 then ...



Страницы: 1 вся ветка

Текущий архив: 2004.04.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.026 c
3-1078491985
atmospheric
2004-03-05 16:06
2004.04.04
как открыть dbf файл ?


1-1079528045
Andrey_ck
2004-03-17 15:54
2004.04.04
Работа со строками


1-1079675464
AleksandrKu
2004-03-19 08:51
2004.04.04
Как по нажатии клавиши изменить фокус ввода


14-1078892157
Dmitriy O.
2004-03-10 07:15
2004.04.04
Про возраст 2


9-1063174432
Riko
2003-09-10 10:13
2004.04.04
OpenGL-DirectX-DelphiX глупый вопрос - но не дает покоя