Power Builder - Ejec. el nombre de store proc. como variable

 
Vista:

Ejec. el nombre de store proc. como variable

Publicado por Ignacio (29 intervenciones) el 14/12/2002 12:55:31
Tengo que lograr ejecutar el nombre de un store procedure que está almacenado en una columna de una tabla en la base de datos. La idea es tomar ese string (con parametros, etc.) y lo pueda ejecutar como un store procedure. Algo parecido a esto:

string ls_procedure
ls_procedure = ads_impuestos_generales.object.impuesto_x_modulocalcespec[i]
DECLARE lF_PROCEDURE PROCEDURE FOR
string(ls_procedure)
USING itr_transaction;
EXECUTE lF_PROCEDURE;
CLOSE lF_PROCEDURE;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ejec. el nombre de store proc. como variable

Publicado por Carla (9 intervenciones) el 16/12/2002 15:23:43
Hola Ignacio:
Eso que intentas hacer creo que no se puede, por lo menos trabjando con SYBASE.
Lo que podes hacer es realizar una ejecucion de un string (conteniendo el nombre del sp y los parametros con el EXECUTE INMEDIATE)

string ls_procedure
ls_procedure = ads_impuestos_generales.object.impuesto_x_modulocalcespec[i]
PREPARE SQLSA FROM :ls_procedure ;
DESCRIBE SQLSA INTO SQLDA ;
DECLARE ejec_sp DYNAMIC CURSOR FOR SQLSA ;
OPEN DYNAMIC ejec_sp USING DESCRIPTOR SQLDA ;

Si tiene resultados de retorno los capturas asi:
FETCH ejec_sp USING DESCRIPTOR SQLDA ;
CHOOSE CASE SQLDA.OutParmType[1]
CASE TypeString!
Stringvar = GetDynamicString(SQLDA, 1)
CASE TypeInteger!
Intvar = GetDynamicNumber(SQLDA, 1)
END CHOOSE

Y siempre lo cerras, tengas o no resultados de retorno.
CLOSE ejec_sp ;

Esto esta en el Help de PowerBuilder como "Dynamic SQL" hay 4 formatos posibles. Si el sp no devuelve resultado hay otro formato mas sencillo que te puede servir.

Espero que te sirva.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ejec. el nombre de store proc. como variable

Publicado por Ignacio (29 intervenciones) el 16/12/2002 16:13:28
Gracias Carla, cuando tenga un ratito de tiempo lo pruebo y te comento que tal me fue.

Ignacio.-
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar