Форум: "Базы";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
Вниз
Преобразования типа 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.034 c