Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.03 c
3-1078377703
Rauf
2004-03-04 08:21
2004.04.04
Помогите с SQL запросом в ADO


14-1078520416
Ivane
2004-03-06 00:00
2004.04.04
Удаление процесса программнім путём


4-1074769454
misha2
2004-01-22 14:04
2004.04.04
Как после перезагрузки показать сообщение пользователю до Logonа


7-1074335056
Игор
2004-01-17 13:24
2004.04.04
Отслеживание событий


14-1079079237
Gorlum
2004-03-12 11:13
2004.04.04
Autorun.inf





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский