Главная страница
    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.034 c
7-1074682789
DECL
2004-01-21 13:59
2004.04.04
Установка dll на компьютере клиента


3-1078410282
Vemer
2004-03-04 17:24
2004.04.04
Генерация ID записи


14-1078637875
Rouse_
2004-03-07 08:37
2004.04.04
C Днем Рождения 7 Марта


3-1078929983
Nax
2004-03-10 17:46
2004.04.04
Преобразования типа TDateTime


1-1079272826
010101001010001010101001
2004-03-14 17:00
2004.04.04
Проще не бывает





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