Форум: "Базы";
Текущий архив: 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