Mostraremos tres escenarios distintos:
1. Cuando el Procedimientos Almacenado devuelve uno o más parámetros de salida también llamado parámetro OUTPUT.
2. Cuando devuelve un conjunto de resultados producto de una sentencia select.
3. El tercero y más simple, cuando el Procedimiento Almacenado no tiene parámetro alguno.
Escenario 1: Cuando el Procedimiento Almacenado devuelve valor mediante variables OUTPUT.
Primero definimos el código del Procedimiento Almacenado, el cual su función es devolver el producto de la multiplicación del valor de parámetro1 y el valor de PI que es 3.1416.
Ojo, devemos definir el parametro de retorno como OUTPUT
CREATE PROCEDURE usp_escenario1 @parametro1 INTEGER,@parametro2 DECIMAL(18,2) OUTPUT AS BEGIN SET @parametro2=@parametro1 * 3.1416 END |
En la cuadro siguiente el código de PowerBuilder usado.
Para una mejor manipulación de los resultados devueltos por un Procedimiento Almacenado es aconsejable realizarlo mediante un DataWindow, pero eso será tema de otro artículo.
Definimos el código del Procedimiento Almacenado, el cual no pasamos ningún parámetro simplemente ejecutamos el procedimiento y recuperamos el conjunto de resultados.
CREATE PROCEDURE usp_escenario2_3 AS BEGIN CREATE TABLE #cliente ( codigo int, nombre varchar(15) ) INSERT INTO #cliente VALUES(1,'PEPE') INSERT INTO #cliente VALUES(2,'JUAN') INSERT INTO #cliente VALUES(3,'MARIA') SELECT codigo,nombre FROM #cliente END |
En la cuadro siguiente el código de PowerBuilder usado.
Integer codigo String nombre //Considerar que las variables que se pasen deben ser del mismo tipo definido en //el procedimiento almacenado DECLARE sp_procedure PROCEDURE FOR usp_escenario2_3; EXECUTE sp_procedure; //Ejecutamos con el nombre del Alias FETCH sp_procedure INTO :codigo,:nombre; //Recuperamos el resultado DO WHILE sqlca.sqlcode = 0 Messagebox("Resultado",string(codigo)+" " +nombre) FETCH sp_procedure INTO :codigo,:nombre; LOOP CLOSE sp_procedure; |
Articulos de apoyo:
Conexión a SQL Server
Conexion a SQL Server mediante OLE DB
3 comentarios:
todo ok, pero si quisiera conectar ese resultado con un datawondows, que podria agregar..gracias
al pasarlo a power builder marca error de valor de caracter no valido para especificacion cast que podra ser.
Publicar un comentario