Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.09.12;
Скачать: [xml.tar.bz2];

Вниз

Почему TDateField.Value возвращает неправильные значения???   Найти похожие ветки 

 
Sirus   (2002-08-22 12:08) [0]

Привет мастера...
Есть вопрос: Почему TDateField.Value возвращает неправильные значения вроде 00.00.0000 и 07.11.34323???


 
Mike Kouzmine   (2002-08-22 12:15) [1]

Возвращает, что есть и в том формате, который ты указываешь.
Вариант 1 - Не так присваиваешь
Вариант 2 - Не так смотришь


 
Sirus   (2002-08-22 12:35) [2]

Скажите где ошибка???

Var FDate:TDateField;
DtrDate:TDate;
Begin
Query1.Close;
Query1.Fields.Clear;
FDate:=TDateField.Create(Self);
FDate.FieldName:="DTR_DATE";
FDate.Name:=Query1.Name+FDate.FieldName;
FDate.Dataset:=Query1;
Query1.FieldDefs.Update;
Query1.SQL.Clear;
Query1.SQL.Add("select distinct(DTR_DATE) from SUBS_DTR");
Query1.SQL.Add("order by DTR_DATE");
Query1.Open;
Query1.Last;
DtrDate:=FDate.Value;
ShowMessage(DateToStr(DtrDate));
End;

В результате получаю дату типа: 05.07.21451...
В строку конвертируется... А обратно засунуть его в базу не получается... Invalid type conversion...
Попробовал FDate.AsString... результат строка типа 00.00.0000 которая естественно в переменную типа TDate не хочет переходить...


 
Johnmen   (2002-08-22 12:42) [3]

Это одна сплошная ошибка.....:(


 
Mike Kouzmine   (2002-08-22 12:43) [4]

Ну так ты же убиваешь поля. И что ты присваиваешь?


 
Mike Kouzmine   (2002-08-22 12:49) [5]

Извини, ошибся, просто глаза разбежались.....
Хотя я против таких вопросов, но все же, зачем это? Что ты хочешь сделать?


 
Sirus   (2002-08-22 12:55) [6]

Мне не нравятся значения типа NULL которые иногда встречаются в базе... Чтобы изюежать их мне приходится создавать поля, которые можно убирать и ставить заново в зависимости нужны они или нет...
Так вот.. я не вижу сплошной ошибки... тем более что все работает.... Правда неправильно.... И насчет убийства полей...
Я не догнал что значит убивать их... я просто убираю их...


 
Johnmen   (2002-08-22 13:01) [7]

Пойми, что у тебя каша в голове...(об этом свидетельствует вышеприведенный код)
Как это в базе значения типа NULL ?????!!!!!!
Как это создавать поля и убирать ?????!!!!!
.............
.............
.............


 
Sirus   (2002-08-22 13:15) [8]

Короче база на Interbase 5.5...
Есть таблица SUBS_DTR в которой есть поле DTR_DATE тип DATE...
Есть очень много записей... Среди них есть записи в которых значения поля SUBS_DTR нету, т.е. есть но NULL...
При обращении к полю DtrDate:=Query1.FieldValues["DTR_DATE"]; выскакивает ошибка... (типа не тот тип)... Если добавлять поля к которым можно обращаться на ты, т.е. Query1DTR_DATE.AsDate; не боясь значений типа NULL и вообще пустых значений...
Вот и приходится создавать поля которые вместо NULL возвращают вполне конвертируемые значения... А потом их нужно убирать потому-что компонент Query1 используется других запросов...


 
Mike Kouzmine   (2002-08-22 13:20) [9]

>>Так вот.. я не вижу сплошной ошибки... тем более что все >>работает.... Правда неправильно....
Если работает неправильно - значит не работает.
Если тебе не нравиться, что поля не имеют значений, то ставь по умолчанию, или присваивай им значения, а если нет, то есть другие стандартные способы.


 
Johnmen   (2002-08-22 13:26) [10]

DtrDate:=Query1.FieldByName("DTR_DATE").AsDateTime;


 
Sirus   (2002-08-22 13:34) [11]

> Johnmen ©
DtrDate:=Query1.FieldByName("DTR_DATE").AsDateTime;
Такое не прокатывает... Null есть Null...


 
ЮЮ   (2002-08-23 03:38) [12]

1.
if Query1.FieldByName("DTR_DATE"). isNull
then DtrDate:=0
else DtrDate:=Query1.FieldByName("DTR_DATE").AsDateTime;

2.
var VarDate:Variant;
...
VarDate:=Query1.FieldByName("DTR_DATE").AsDateTime;
if VarIsNull(VarDate) or VarIsEmpty(VarDate) then ...
if VarType(VarDate)=varDate then ...



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

Форум: "Базы";
Текущий архив: 2002.09.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.007 c
1-35709
ec
2002-09-02 15:23
2002.09.12
Как в Memo нажать Enter


3-35532
Lerico
2002-08-20 08:27
2002.09.12
В чем проблема?


1-35769
WhiteCat
2002-08-28 20:00
2002.09.12
Как пишут интерпретаторы ?


14-35899
vasya_dvc
2002-08-16 12:52
2002.09.12
Компонент для написания Installer а


14-35907
Agent Smith
2002-08-19 20:00
2002.09.12
ASUS GF3 Ti200 Deluxe - как писать с TV на комп?





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