lunes, 13 de junio de 2016

Usando Function PostgreSQL en DataWindow

En PostgreSQL no existen el objeto Stored Procedure, pero si el objeto Function que en PostgreSQL cumple al máximo como cualquier objeto Stored Procedure de otro motor de base de datos, ejemplo Oracle (mi preferido) y SQL Server(mi segundo preferido).

Y porque necesitamos trabajar con Stored Procedure (Oracle y SQL Server) o Function (PostgreSQL), por las siguientes ventajas: 
  • Rapidez, 
  • Seguridad, 
  • Encapsulamiento
  • Separar capas

La ejecución del Stored Procedure (Oracle y SQL Server) o Function (PostgreSQL) ocurre en el servidor de bases de datos. Esto probablemente aumentará el rendimiento de nuestra aplicación al no tenerse que mandar datos entre el cliente y el servidor, y no tener que procesar resultados intermedios en el cliente para obtener el resultado final.

Al tener la lógica de la aplicación implementada en la base de datos no tendremos que implementarla en los clientes, con el consiguiente ahorro de lineas de código redundante y complejidad.

Usar un objeto Function PostgreSQL en un DataWindow

El objeto DataWindow es muy potente y si esta asociado con un Stored Procedure (Oracle y SQL Server) o Function (PostgreSQL) obtendremos rapidez en los resultados que se requiere.

Seguiremos los siguientes pasos:

Paso1. Crear un objeto Type en PostgreSQL

En los siguientes enlaces podrás obtener mas información al respecto, les sugiero leerlos:
https://www.postgresql.org/docs/9.5/static/sql-createtype.html
https://www.postgresql.org/docs/9.5/static/rowtypes.html

Crearemos un Composite Types por código:


(Imagen 1)

Este Type esta comformado por varias campos con su respectivo tipo de dato.

Paso 2. Crear un objeto Function en PostgreSQL


En el siguiente enlace podrás tener mas información sobe Functions:
https://www.postgresql.org/docs/9.5/static/sql-createfunction.html


(Imagen 2)


En la linea RETURNS SETOF public.t_fu_sel_cliente AS se invoca al Type creado en el Paso 1, note que la estructura del Type es el mismo a la que esta dentro del SELECT, es decir son los mismo campos. Así se trabaja en PostgreSQL para devolver un SELECT desde un objeto Function PostgreSQL.

Paso 3. Crear un objeto DataWindow en PowerBuilder.

1. Creamos un nuevo objeto DataWindow:
(Imagen 3)

2. Elegimos SQL Select, clic en Next.
(Imagen 4)

3. Clic en el botón Cancel.
(Imagen 5)

4. Clic en Convert To Syntax de la opción Design
(Imagen 6)

5.Creamos 02 argumento que son los que necesita el objeto Function PostgreSQL
(Imagen 7)

(Imagen 8)

8. Debemos escribir lo siguiente:
(Imagen 9)

Y listo, eso es todo lo que necesitamos.

No hay comentarios: