![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вычисляемые поля в запросе на FB?
Тщищвн © (2003-08-01 09:42:00)
Привет ALL! В Firebird 1.0 есть таблица с полями "Начало работы" типа TIMESTAMP и "Продолжительность" типа TIME. Очень нужно, чтобы в DBGRID, привязанной к TIBQuery, запрос SELECT возвращал ещё и "Конец работы" типа TIMESTAMP и "Осталось работать" типа TIME. Выражение типа SELECT POLE1, POLE2, POLE1+POLE2 AS POLE3, CURRENT_TIME-POLE1+POLE2 AS POLE4 приводит к ошибкам. Где грабли?
И поддерживает ли вообще IB или FB вычисляемые поля в запросах? Зараннее большой сенкс!
Тщищвн (2003-08-01 12:03:00) [1]
ОК. Всем спасибо! Вот именно про это я и не подумал. Дошло даже до того, что на канве грида писал вычесленное поле, однако очень не красиво получается..
Zacho (2003-08-01 11:50:00) [2]
> Тщищвн (01.08.03 11:43)
Типа почитай про calculated поля в TDataSet и событие OnCalcFields
Тщищвн (2003-08-01 11:43:00) [3]
типа IBQuery1["Поле"]:=значение ?
Тщищвн (2003-08-01 11:41:00) [4]
2 KDS:
А каким образом мне запихнуть вычесленное значение в DBGrid?
KDS (2003-08-01 11:22:00) [5]
Или же сделать вычисляемое поле не средствами сервера а средствами клиента (программно). Т. е. добавить вычисляемое поле на уровне TIBQuery и обрабатывать результат в OnCalcFields
Zacho (2003-08-01 10:06:00) [6]
Вычисления в запросах естественно поддерживаются. А грабли в том, что не поддерживаются арифметические операции с DATE, TIME и TIMESTAMP.
Я не помню, есть ли в FB1 преобразование DATE, TIME, TIMESTAMP в DOUBLE PRECISION (знаю, что есть в Дятле) Если есть - то делай что-то типа SELECT CAST( CAST(POLE1 AS DOUBLE PRECISION)+CAST(POLE2 AS DOUBLE PRECISION) AS TIMESTAMP)
Если нет - то используй UDF или посмотри, где-то на www.ibase.ru был набор процедур для работы с датой и временем на чистом SQL.
Alexandr (2003-08-01 10:00:00) [7]
к каким ошибкам?