Subject Re: [ib-support] Firebird Workbench, EXECUTE Stored Procedure within another Stored Procedure.
Author Martijn Tonies
Hi Henrik,

> I tried the following code for procedure TEST2:
>
> SET TERM ^! ;
> CREATE PROCEDURE TEST2 returns (VAR_VARETYPE VarChar(50), VAR_LEVERANDOR
> VarChar(50), VAR_ADRESSE1 VarChar(50), VAR_KONTAKTPERSON VarChar(50),
> VAR_TELLER Integer) AS
> BEGIN
> EXECUTE PROCEDURE TEST1 ;

What I meant was something like:

EXECUTE PROCEDURE TEST1 RETURN_VALUES :param/var, :etc...

You have to declare a couple of parameters or variables that will hold
the returning values.

And from your previous post about TEST1, you should most probably
use SELECT ... FROM TEST1


With regards,

Martijn Tonies
InterBase Workbench - the developer tool for InterBase & Firebird
Firebird Workbench - the developer tool for Firebird
Upscene Productions
http://www.upscene.com

"This is an object-oriented system.
If we change anything, the users object."


> END ^!
> SET TERM ; ^!
>
> This didn't work (which is good actually). I want to write several
> stored procedures that can return different numbers of parameters, then
> execute one or more of them in another procedure (TEST2) depending on
> some input value(s).
>
> If you feel you have better things to do than answering all my questions
> I understand that...
>
> Henrik
>
> Me again :)
>
> > I'm trying to execute a stored procedure within another stored
> > procedure. The first procedure looks like this:
> >
> > SET TERM ^! ;
> > CREATE PROCEDURE TEST1 returns (VAR_VARETYPE VarChar(50),
> VAR_LEVERANDOR
> > VarChar(50), VAR_ADRESSE1 VarChar(50), VAR_KONTAKTPERSON VarChar(50),
> > VAR_TELLER Integer) AS
>
> This procedure returns a couple of parameters.
>
>
> --8<-- snip
>
> > My second Stored procedure is:
> >
> > SET TERM ^! ;
> > CREATE PROCEDURE TEST2 AS
> > BEGIN
> >
> > EXECUTE PROCEDURE TEST1 ;
>
> Where does this get it's return parameters??
>
> btw, if you use SUSPEND, you should use SELECT.
>
> > END ^!
> > SET TERM ; ^!
> >
> > So my plan is simply to execute TEST1 in TEST2, but I get the
> following
> > error: "ISC ERROR MESSAGE: invalid request BLR at offset 24 parameter
> > mismatch for procedure TEST1"