Subject Re: [IBO] 4.9.14b32 - Problem with executable SP and output parameters
Author Thomas Steinmaurer
Hi Jason,

> 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.

Ok, then how do I execute an executable stored procedure without a
SUSPEND in the body and returning output parameter values? Obviously I
can't do that anymore with a TIB_StoredProc and the ExecProc call.

With a TIB_DSQL?

Thanks,
Thomas

> 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
>
>
>
> ------------------------------------
>
> ___________________________________________________________________________
> IB Objects - direct, complete, custom connectivity to Firebird or InterBase
> without the need for BDE, ODBC or any other layer.
> ___________________________________________________________________________
> http://www.ibobjects.com - your IBO community resource for Tech Info papers,
> keyword-searchable FAQ, community code contributions and more ! Yahoo! Groups Links
>
>
>