Форум: "Базы";
Текущий архив: 2003.04.24;
Скачать: [xml.tar.bz2];
ВнизПоле типа TTime в IB. Найти похожие ветки
← →
off (2003-04-03 07:19) [0]Возникла такая проблема - есть необходимость добавить время в поле типа TTime.
ПишуIBDataSet1TIMEEVID.Value:=StrToTime("10:11:02");
при этом получаю следующую ошибку : ""0.36662000" is not a valid timestamp"
Тогда возникает вопрос: какой таймстамп из валид?
← →
off (2003-04-03 07:36) [1]Эй мастера!!!!!!!!! Ау-у-у-у-у-.... Где же вы? Anatoly Podgoretsky? Соловьев? Mike Goblin?
← →
Rol (2003-04-03 08:39) [2]строкой и вноси... зачем же ты в Double переводишь-то?
← →
off (2003-04-03 09:07) [3]В смысле, переопределить тип поля на строковый?
← →
off (2003-04-03 09:25) [4]А зачем?
>IBDataSet1TIMEEVID.Value:=StrToTime("10:11:02");
я ведь только для примера написал, чтобы понятно было в каком формате вывожу данные. Даже если написать
IBDataSet1TIMEEVID.Value:=now
все равно ничего не получается
← →
Johnmen (2003-04-03 09:36) [5]IBDataSet1TIMEEVID.AsDateTime:=now
← →
ЮЮ (2003-04-03 09:38) [6]now и StrToTime("10:11:02") имеют тип TDateTime,
а IBDataSet1TIMEEVID.Value - что-то родственное timestamp
Надо что-то вроде этого:
IBDataSet1TIMEEVID.Value := "20021110";
или
IBDataSet1TIMEEVID.asDate :=
← →
off (2003-04-03 09:43) [7]Так я про что и спрашивал какой timestamp. Т.е в каком виде мне передавать значенгия?
Кстати предложенные варианты не помогают :-(
← →
Соловьев (2003-04-03 09:47) [8]
> Эй мастера!!!!!!!!! Ау-у-у-у-у-.... Где же вы? Anatoly Podgoretsky?
> Соловьев? Mike Goblin?
рановато меня к в один ранг зачислили....
Какого типа поле TIMEEVID у тебя в базе
← →
Johnmen (2003-04-03 09:53) [9]что-то родственное timestamp есть тип SQLTimeStamp, т.е. пробуй
IBDataSet1TIMEEVID.AsSQLTimeStamp:=DateTimeToSQLTimeStamp(now);
← →
off (2003-04-03 11:18) [10]>Johnmen ©
интересная вещь получается в хэлпе DateTimeToSQLTimeStamp procedure есть, а при компиляции выдает Undeclared Identifier DateTimeToSQLTimeStamp. Как лечить?
← →
off (2003-04-03 11:24) [11]>Соловьев ©
Я здесь человек новый и о ранге сужу не по заслугам перед отечеством, а по количеству дельных ответов на любые вопросы (свои и чужие, умные и как у меня).
А поле у меня цитирую SQL из IBConsole:
CREATE TABLE "EVIDCELL"
(
.............
"TIMEEVID" TIME,
.............
)
← →
Johnmen (2003-04-03 11:24) [12]uses SqlTimSt :) трудно это выяснить ????
← →
off (2003-04-03 11:33) [13]Прости Johnmen, я только что с обеда и вся кровь как полагается в желудке. Мозги же испытывают кислородное голодание ==> соображаю гораздо медленнее.
Спасибо за подсказку, но все же от ошибки это не спасло. Теперь получил "Cannot access field "TimeEvid" as type SQLTimeStamp."
← →
Johnmen (2003-04-03 11:40) [14]>off © (03.04.03 11:33)
>Прости Johnmen, ...
Не понял, за что :))))
>...все же от ошибки это не спасло
Лично я с 3 диал-ом не работаю. Поэтому экспериментируй сам...
Пробуй AsDateTime, пробуй явно прописать тип параметра, пробуй явное приведение типа...
← →
Александр С. (2003-04-03 13:54) [15]все работаетprocedure TForm1.Button1Click(Sender: TObject);
begin
IBTransaction1.StartTransaction;
try
IBQuery1.Params[0].AsString := Edit1.Text;
IBQuery1.Params[1].AsTime := DateTimePicker2.Time;
IBQuery1.ExecSQL;
IBTransaction1.Commit;
except
IBTransaction1.Rollback;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
IBTransaction1.StartTransaction;
try
IBQuery1.Params[0].AsString := Edit1.Text;
IBQuery1.Params[1].AsTime := Time;
IBQuery1.ExecSQL;
IBTransaction1.Commit;
except
IBTransaction1.Rollback;
end;
end;
← →
off (2003-04-03 14:07) [16]А вот если не ч/з IBQuery?
← →
Tomkat (2003-04-03 14:58) [17]сам столкнулся с проблемой - переводил базу в 3 диалект -
TIMESTAMP - если в поле указано и дата и время ...
TIME - только время
DATE - только дата
у себя лечил таким образом :
IBDataSet.FieldByName("Data").asDateTime:=now() ;
← →
off (2003-04-03 21:10) [18]Спасибо Tomkat, обязательно попробую. Думаю должно получиться, если не получиться, то буду делать через параметр.
← →
off (2003-04-04 13:57) [19]>Tomkat
Пишу:IBDataSet1.FieldByName("TIMEEVID").AsDateTime:=Table10TimeEvid.Value;
выдает тоже самое, что получалось если просто написатьIBDataSet1TIMEEVID.Value:=Table10TimeEvid.Value;
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.04.24;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.009 c