Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поле типа TTime в IB. [D6, IB6.x]


off ©   (2003-04-03 07:19:00) 

Возникла такая проблема - есть необходимость добавить время в поле типа TTime.
Пишу IBDataSet1TIMEEVID.Value:=StrToTime("10:11:02");
при этом получаю следующую ошибку : ""0.36662000" is not a valid timestamp"
Тогда возникает вопрос: какой таймстамп из валид?


off   (2003-04-04 13:57:00) [1]

>Tomkat
Пишу: IBDataSet1.FieldByName("TIMEEVID").AsDateTime:=Table10TimeEvid.Value;выдает тоже самое, что получалось если просто написать IBDataSet1TIMEEVID.Value:=Table10TimeEvid.Value;


off   (2003-04-03 21:10:00) [2]

Спасибо Tomkat, обязательно попробую. Думаю должно получиться, если не получиться, то буду делать через параметр.


Tomkat   (2003-04-03 14:58:00) [3]

сам столкнулся с проблемой - переводил базу в 3 диалект -
TIMESTAMP - если в поле указано и дата и время ...
TIME - только время
DATE - только дата
у себя лечил таким образом :
IBDataSet.FieldByName("Data").asDateTime:=now() ;


off   (2003-04-03 14:07:00) [4]

А вот если не ч/з IBQuery?


Александр С.   (2003-04-03 13:54:00) [5]

все работает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;


Johnmen   (2003-04-03 11:40:00) [6]

>off © (03.04.03 11:33)
>Прости Johnmen, ...

Не понял, за что :))))

>...все же от ошибки это не спасло

Лично я с 3 диал-ом не работаю. Поэтому экспериментируй сам...
Пробуй AsDateTime, пробуй явно прописать тип параметра, пробуй явное приведение типа...


off   (2003-04-03 11:33:00) [7]

Прости Johnmen, я только что с обеда и вся кровь как полагается в желудке. Мозги же испытывают кислородное голодание ==> соображаю гораздо медленнее.
Спасибо за подсказку, но все же от ошибки это не спасло. Теперь получил "Cannot access field "TimeEvid" as type SQLTimeStamp."


Johnmen   (2003-04-03 11:24:00) [8]

uses SqlTimSt :) трудно это выяснить ????


off   (2003-04-03 11:24:00) [9]

>Соловьев ©
Я здесь человек новый и о ранге сужу не по заслугам перед отечеством, а по количеству дельных ответов на любые вопросы (свои и чужие, умные и как у меня).
А поле у меня цитирую SQL из IBConsole:

CREATE TABLE "EVIDCELL"
(
.............
"TIMEEVID" TIME,
.............
)


off   (2003-04-03 11:18:00) [10]

>Johnmen ©
интересная вещь получается в хэлпе DateTimeToSQLTimeStamp procedureесть, а при компиляции выдает Undeclared Identifier DateTimeToSQLTimeStamp. Как лечить?


Johnmen   (2003-04-03 09:53:00) [11]

что-то родственное timestamp есть тип SQLTimeStamp, т.е. пробуй
IBDataSet1TIMEEVID.AsSQLTimeStamp:=DateTimeToSQLTimeStamp(now);


Соловьев   (2003-04-03 09:47:00) [12]


> Эй мастера!!!!!!!!! Ау-у-у-у-у-.... Где же вы? Anatoly Podgoretsky?
> Соловьев?Mike Goblin?

рановато меня к в один ранг зачислили....

Какого типа поле TIMEEVID у тебя в базе


off   (2003-04-03 09:43:00) [13]

Так я про что и спрашивал какой timestamp. Т.е в каком виде мне передавать значенгия?
Кстати предложенные варианты не помогают :-(


ЮЮ   (2003-04-03 09:38:00) [14]

now и StrToTime("10:11:02") имеют тип TDateTime,
а IBDataSet1TIMEEVID.Value - что-то родственное timestamp

Надо что-то вроде этого:
IBDataSet1TIMEEVID.Value := "20021110";
или
IBDataSet1TIMEEVID.asDate :=


Johnmen   (2003-04-03 09:36:00) [15]

IBDataSet1TIMEEVID.AsDateTime:=now


off   (2003-04-03 09:25:00) [16]

А зачем?
> IBDataSet1TIMEEVID.Value:=StrToTime("10:11:02");
я ведь только для примера написал, чтобы понятно было в каком формате вывожу данные. Даже если написать
IBDataSet1TIMEEVID.Value:=nowвсе равно ничего не получается


off   (2003-04-03 09:07:00) [17]

В смысле, переопределить тип поля на строковый?


Rol   (2003-04-03 08:39:00) [18]

строкой и вноси... зачем же ты в Double переводишь-то?


off   (2003-04-03 07:36:00) [19]

Эй мастера!!!!!!!!! Ау-у-у-у-у-.... Где же вы? Anatoly Podgoretsky? Соловьев? Mike Goblin?


Наверх

Титульная страница Поиск, карта сайта Написать письмо