Страница 1 из 1

IBX: invalid data conversion

Добавлено: 17 фев 2006, 12:10
Max_VM
Есть хранимая процедура:

CREATE PROCEDURE GET_APPARAT_LAST_BINDING (
APPARAT_CODE NUMERIC(18,0))
RETURNS (
BINDING_CODE NUMERIC(18,0))
AS
...

При вызове TIBStoredProc.ExecProc валимся на процедуре FetchDataIntoOutputParams. :?
Далее выясняется, что в IBSql.pas TIBXSQLVAR.GetAsVariant заходим по такому условию:
SQL_INT64:
if FXSQLVAR^.sqlscale = 0 then
IBError(ibxeInvalidDataConversion, [nil])
Изменить хранимую процедуру нет возможности, т.е. Numeric 18,0 поменять на Integer или хотябы Numeric 18,N где N>0.
Что делать ? :?:

Добавлено: 17 фев 2006, 12:44
kdv
обновить версию IBX.

Re: IBX: invalid data conversion

Добавлено: 17 фев 2006, 14:48
Dimitry Sibiryakov
Max_VM писал(а):Что делать ?
А нефиг пользоваться variant. Используй AsInt64 раз уж у тебя такой большой integer.

Добавлено: 17 фев 2006, 17:19
kdv
А нефиг пользоваться variant.
любит народ эту гадость. Я как увидел первый раз когда это в Delphi 2 (?) ввели, чуть не ...
А после того, как посмотрел на реализацию в RTL, понял, что я ничего не потеряю, просто забив на варианты.

Добавлено: 20 фев 2006, 08:28
Max_VM
Это как же мне не пользоваться variant'ом ? :?
Расскажите, плз. Я вызываю ExecProc и там она валится ! Где мне не пользоваться вариантом ? До загрузки параметров дело еще не дошло !

Добавлено: 20 фев 2006, 09:32
kdv
вариантом - нигде не пользоваться. Как и IBStoredProc. IBX какой версии - самой свежей?

Добавлено: 20 фев 2006, 11:14
SAMZ
kdv писал(а):вариантом - нигде не пользоваться. Как и IBStoredProc. IBX какой версии - самой свежей?
Ну, мужики, Вы фундаменталисты и радикалы. Понятно, можно избегать варианта при работе с БД, а если работаешь с WordAplication, с какой переменной в приложении его связывать.

Добавлено: 20 фев 2006, 12:47
Max_VM
Все полечилось обновлением IBX до 7.08 ! :lol:
Спасибо... :wink: