Procedimientos Almacenados y Power Builder

Me gustaría haber si puedes ayudarme en el siguiente tema:
Tengo un procedimiento almacenado con unos parámetros de entrada y unos parámetros de salida
"procedure trazatec.pREC_FRRegistrarEntradaLin(in P_FRENTRADALINID integer, in iZonaAlmacenId integer, out p_ErrorDB integer, out p_MsgError varchar(200))"
Desde power builder lanzo el procedimiento de la siguiente manera:
"DECLARE sp_alta_pallet PROCEDURE FOR prec_frregistrarentradalin P_FRENTRADALINID = :al_lineaid,
iZonaAlmacenId = :gi_almac;
execute sp_alta_pallet ;"
Mi problema es que necesito saber el valor de uno de los parámetros de salida (p_ErrorDB) para procesarlo por código en power builder, y no se como capturarlo, una vez ejecutado el procedimiento, de la manera que yo intenté hacerlo no funcionaba que es la siguiente:
"if sqlca.sqlcode = 0 then
Fetch sp_alta_pallet INTO :li_error,:ls_mess;
close sp_alta_pallet;
else
li_error = -1;
end if" siendo li_error y ls_mess 2variables locales.

1 respuesta

Respuesta
1
Los valores que devuelve un procedimiento los capturas cuando haces el fetch into.
Lo que necesito saber es que bdms estas usando.
¿El execute te anda?
AldoB
Hola de nuevo,
En tu pregunta a lo de que si el execute anda, la respuesta es que si, ya que inserciones que hago en determinadas tablas desde ese procedimiento se realizan correctamente, y en cuanto al valor de los parámetros de salida es seguro que en el procedimiento si se les da valor.
Supongo que lo que quieres decir con bdms es el tipo de base de datos o el motor que estoy usando, ¿no?
Trabajo con BDE y SyBASE CENTRAL
Gracias.
Segun la documentacion la declaracion del procedimiento deberia ser:
DECLARE Emp_proc procedure for GetName
@emp_name = :Emp_name_var,
@emp_salary = :Emp_sal_var ;
es decir:
DECLARE sp_alta_pallet PROCEDURE FOR prec_frregistrarentradalin @P_FRENTRADALINID = :al_lineaid,
@iZonaAlmacenId = :gi_almac;

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas