BIGINT + IBX 15.0 = Unsupported Feature?

Cobalt747
Дата: 29.04.2012 03:03:22
Delphi XE, IBX v15.0, FB Embedded 2.1, Dialect 3
Понадобилось мне хранить числа 16-ти значные (например, 2531161666486272)
Завел я поле BigInt, стал писать в скрипте
 'Create Table ' + TableName + ' ( ID BIGINT,' +

дошло до
Insert INTO 
, и встала во весь рост ошибка Unsupported Feature при ExecSQL из TIBQuery
Параметр в запросе заполняю как
ds.ParamByName('ID').AsLongWord := LineNum;


Протрассировал до
procedure TIBQuery.SetParams;
case Params[i].DataType of


И обнаружил, что совершенно не предусмотрена обработка полей типа ftLongWord, по какому случаю и бросается исключение.

Что посоветуете?
DelphiCoder_1980
Дата: 29.04.2012 08:15:53
IBX разрабатывается не под Firebird, а под InterBase, который, НЯЗ, не поддерживает тип BIGINT. Надо подумать о других компонентах доступа.
Ambient
Дата: 29.04.2012 10:11:06
а если перенести превращение в bigint на уровень самого сервера?
ds.ParamByName('ID').AsString := IntToStr(LineNum);

Insert into TABLENAME(ID) values(cast(:ID as numeric(18,0)))
kdv
Дата: 29.04.2012 11:43:37
DelphiCoder_1980
не под Firebird, а под InterBase, который, НЯЗ, не поддерживает тип BIGINT.

в ИБ этим же типом является numeric(18,0), так что все поддерживается, дело только в непонимании IBX-ом типа, приходящего от сервера. чуть допилить, и все.
Cobalt747
Дата: 29.04.2012 13:17:36
Решил проблему AsLargeInt - правда, это знаковый тип, но я надеюсь, что числа более 9223372036854775807 у меня не будет.
Dimitry Sibiryakov
Дата: 29.04.2012 13:22:40

Cobalt747
встала во весь рост ошибка Unsupported Feature при ExecSQL из TIBQuery

А не первый ли диалект у подключения?..

Posted via ActualForum NNTP Server 1.5