La Web del Programador: Comunidad de Programadores
 
    Pregunta:  8406 - STORE PROCEDURES.
Autor:  Jaime Arvizu
Hola chicos, alguien me puede explicar como definir los store procedures en una aplicacion de Power Builder. Mi problema reside en que tengo una aplicacion la cual maneja toda la informacion sobre DataWindows, y la tarea que me asignaron es eliminar la sentencia SQL en la data window y hacer que corra esas mismas datawindows con store procedures.

Cualquier idea es bienvenida.

Muchas gracias de antemano.

  Respuesta:  Carlos JB
Las salidas de tu datawindow con sql quemado, deben ser igual a las de tu procedimiento almacenado, te voy a enseñar como lo debes hacer para no borrar los datawindows que ya tienes hecho.

Recuerda cuando vas a hacer esto con tus datawindows, guarda una copia de los que vas a editar, como precaución.

Lo que vamos a hacer para mejor comprensión es hacer dos datawindow uno con sql quemado, y el otro con sp.

Ejem.

El primer datawindow, va a tener:

SELECT columna1
FROM tabla;

Y lo guardas como dw_sql

Y luego creas el procedimiento:

CREATE PROCEDURE procedimiento()

BEGIN

SELECT columna1
FROM tabla;
END;

Y en base a este ultimo procedimiento haces otro datawindow llamado dw_sp

Ahora en el pintor de librerias, buscas los datawindows creados, le das clic derecho y los exportas los dos.

Desde el editor (edit), los abres y podrás ver las diferencias de cada uno.

Solamente debes cambiar la línea del retrieve, por la linea del procedimiento.

Ej: Cambias esta línea

retrieve="PBSELECT( VERSION(400) TABLE(NAME=~"tabla~" ) COLUMN(NAME=~"columna~")) "

Por esta:

procedure="1 execute procedimiento;0 "

Luego solamente importas el dw al que le hiciste el cambio, para que le caiga encima al anterior, y pruébalo.

No es necesario hacer el datawindow extra, si sabes lo que vas a cambiar, pero me parece mas seguro.

  Respuesta:  Edgardo Chamorro
Por la largada de la respuesta esta en el archivo resp8406.txt

Descargar ejemplo

  Respuesta:  Jorge Reynoso
Hola Jaime

Para definir un store procedure debes entrar en db administration de powerbuilder y alli crear el store procedure: ej.:

Create procedure
as
select * from usuarios

Y luego puedes llamar a este sp desde un datawindows.

Espero que te sirva
Saludos