Subject RE: [IBO] 4.9.14b32 - Problem with executable SP and output parameters
Author IBO Support List
Thomas,

The reason it will have appeared to work is because there was also a time
when there was a bug in the API call and so in order to work around that bug
I didn't use the isc_dsql_execute2() API call. I actually used the
isc_dsql_execute() API call which required me to open a cursor, fetch one
record, and then close the cursor.

So, the waters are considerably murky.

Jason

-----Original Message-----
From: IBObjects@yahoogroups.com [mailto:IBObjects@yahoogroups.com] On Behalf
Of Thomas Steinmaurer
Sent: 09 January 2012 12:48 AM
To: IBObjects@yahoogroups.com
Subject: Re: [IBO] 4.9.14b32 - Problem with executable SP and output
parameters

Hello Jason,

> The change took place in Firebird, not IBO.

Hmm. I was trying an older IB LogManager version with Firebird 2.5 where
it worked. Recompiled IBLM with the most recent IBO version against
Firebird 2.5 shows the problem, so it isn't a pure Firebird engine problem.

Regards,
Thomas




> I protested the change but that's all I can do.
>
> Jason
>
> -----Original Message-----
> From: IBObjects@yahoogroups.com [mailto:IBObjects@yahoogroups.com] On
Behalf
> Of Thomas Steinmaurer
> Sent: 09 January 2012 12:37 AM
> To: IBObjects@yahoogroups.com
> Subject: Re: [IBO] 4.9.14b32 - Problem with executable SP and output
> parameters
>
> Jason,
>
>> This is due to there being no SUSPEND in the body of the procedure.
>
> An executable stored procedure shouldn't need a SUSPEND to return a
> single set of return parameters.
>
>
>> I have put in a request to enhance Firebird to provide an implicit
SUSPEND
>> if one is not included in the body of the procedure and there are output
>> fields. So far it doesn't appear that this issue is being given much
>> consideration.
>
> But it did work with an older IBO version (early 4.9.14), thus I thought
> it is a problem in a more recent IBO version.
>
> Thanks,
> Thomas
>
>> Jason
>>
>> -----Original Message-----
>> From: IBObjects@yahoogroups.com [mailto:IBObjects@yahoogroups.com] On
> Behalf
>> Of Thomas Steinmaurer
>> Sent: 09 January 2012 12:04 AM
>> To: IBObjects@yahoogroups.com
>> Subject: Re: [IBO] 4.9.14b32 - Problem with executable SP and output
>> parameters
>>
>> Hello Jason,
>>
>>> migrating a legacy app from D2006 to D2010 for Unicode support.
>>> Currently I'm using 4.9.14b32.
>>>
>>> I have an executable SP (no SUSPEND in the SP) with a few input
>>> parameters and one output parameter:
>>>
>>> SET TERM ^^ ;
>>> CREATE PROCEDURE P_1 (
>>> ...
>>> )
>>> returns (
>>> VAR_ID Numeric(18,0))
>>> AS
>>> BEGIN
>>> VAR_ID = GEN_ID(MYGEN, 1);
>>> ...
>>> END ^^
>>> SET TERM ; ^^
>>>
>>>
>>> In the application I'm using a TIB_StoredProc and:
>>>
>>> ...
>>> myProc.ExecProc;
>>> ...
>>> myVar := FieldByName('VAR_ID').AsInt64;
>>>
>>>
>>> While this has worked in previous IBO versions, even in earlier 4.9.14
>>> versions, with b32, myVar is always 0.
>>>
>>> Any ideas?
>>
>> Did you have time to investigate?
>>
>>
>> Thanks,
>> Thomas