[ ultraKeen @ 03.05.2004. 22:20 ] @
...sve pise dole u koodu, dovoljno je donje pokrenuti iz ISQL-a IBConsole


SET TERM ^;

/*========================================================================================*/
CREATE PROCEDURE Y_Y (n_1 INTEGER, c_A CHAR(3),
n_2 INTEGER, c_B CHAR(3),
n_3 INTEGER, c_C CHAR(3)) RETURNS (nZ_1 INTEGER, cZ_A CHAR(3),
nZ_2 INTEGER, cZ_B CHAR(3),
nZ_3 INTEGER, cZ_C CHAR(3),
nZ_4 INTEGER, cZ_D CHAR(3))
AS
DECLARE VARIABLE n_4 INTEGER;
DECLARE VARIABLE c_D CHAR(3);
BEGIN

n_4 = 400; c_D = 'DDD';

nZ_1 = n_1; cZ_A = c_A;
nZ_2 = n_2; cZ_B = c_B;
nZ_3 = n_3; cZ_C = c_C;
nZ_4 = n_4; cZ_D = c_D;

END^
/*----------------------------------------------------------------------------------------*/
CREATE PROCEDURE X_X (n_2 INTEGER, c_B CHAR(3)) RETURNS (nX_1 INTEGER, cX_A CHAR(3),
nX_2 INTEGER, cX_B CHAR(3),
nX_3 INTEGER, cX_C CHAR(3),
nX_4 INTEGER, cX_D CHAR(3),
nX_5 INTEGER, cX_E CHAR(3))
AS
DECLARE VARIABLE n_3 INTEGER;
DECLARE VARIABLE c_C CHAR(3);
/**/
DECLARE VARIABLE n_5 INTEGER;
DECLARE VARIABLE c_E CHAR(3);
/* */
DECLARE VARIABLE nY_1 INTEGER;
DECLARE VARIABLE nY_2 INTEGER;
DECLARE VARIABLE nY_3 INTEGER;
DECLARE VARIABLE nY_4 INTEGER;
/**/
DECLARE VARIABLE cY_A CHAR(3);
DECLARE VARIABLE cY_B CHAR(3);
DECLARE VARIABLE cY_C CHAR(3);
DECLARE VARIABLE cY_D CHAR(3);
BEGIN

n_3 = 300;
c_C = 'CCC';

nY_1 = 0; cY_A = ' '; /* tumaci se kako je napisano */
nY_2 = 0; cY_B = ' '; /* tumaci se kako je napisano */
nY_3 = 0; cY_C = ' '; /* tumaci se kako je napisano */
nY_4 = 0; cY_D = ''; /* JEDINO se empty string tumaci kao NULL */

EXECUTE PROCEDURE Y_Y (100, 'AAA', :n_2, :c_B, :n_3, :c_C) RETURNING_VALUES :nY_1, :cY_A,
:nY_2, :cY_B,
:nY_3, :cY_C,
:nY_4, :cY_D;
/*======================================================================================*/
/* PROBLEM: */
/* vracene vrednosti iz RETURNING_VALUES liste se UNUTAR ove proc. NE VIDE !!! */
/* vec i posle EXECUTE PROCEDURE ostaju kakve su bile I PRE nje... */
/* */
/*======================================================================================*/

n_5 = 500;
c_E = 'EEE';

nX_1 = nY_1; cX_A = cY_A;
nX_2 = nY_2; cX_B = cY_B;
nX_3 = nY_3; cX_C = cY_C;
nX_4 = nY_4; cX_D = cY_D;

nX_5 = n_5; cX_E = c_E;

END^
/*========================================================================================*/


SET TERM ;^
[ ultraKeen @ 14.05.2004. 00:01 ] @
da ne bi bilo zabune i klevetanja :) ...

vracene vrednosti iz RETURNING_VALUES liste procedure se nisu videle jer je posle poziva iste bilo jedno nesretno COMMIT WORK;, dakle kada se to uklonilo, vrednosti su se korektno prikazale... doduse samo u verziji IBConsole 1.1.0.25 ali i dalje ne u verziji 1.0.0.326 :((