lunes, 20 de junio de 2016

Obtener las tablas de una base de datos PostgreSQL

Para obtener las tablas que hemos creado en una base de datos PostgreSQL necesitamos ejecutar lo siguiente:

Tambien podemos usar:

miércoles, 15 de junio de 2016

Obtener Fecha y Hora del Servidor PostgreSQL

Creamos un objeto Function en PowerBuilder para poder obtener la fecha del servidor PostgreSQL.

1. Clic en New del PowerBar 
2. En la siguiente ventana seleccionamos Function de la pestaña PB Object y luego clic en el botón OK.
(Imagen 1. Dar clic en la imagen para agrandar)

3. En el objeto Function establecemos y escribimos lo siguiente:
(Imagen 2. Dar clic en la imagen para agrandar)

4. Se invocara al objeto Function de la siguiente manera (ejemplo):

dw_1.Object.fecha[ll_Fila] = f_datetime_server()

martes, 14 de junio de 2016

Usando Secuencias en PostgreSQL

Vamos a trabajar con Secuencias (Sequence) en PostgreSQL y en los siguientes enlaces podrás obtener información al respecto, les sugiero leerlos:

Una secuencia es un tipo especial de objeto de base de datos diseñada para generar identificadores numéricos únicos. Por lo general se utiliza para generar claves primarias.

Crear Secuencia en PostgreSQL

Esta es la estructura para crear una secuencia en PostgreSQL:

(Imagen 1)

STAR = Indica el valor desde el cual comenzará la generación de números secuenciales

INCREMENT = especifica el incremento, es decir, la diferencia entre los números de la secuencia; debe ser un valor numérico entero positivo o negativo diferente de 0. Si no se indica, por defecto es 1.

MINVALUE = Establece el valor mínimo de la secuencia.

MAXVALUE = Define el valor máximo para la secuencia. Si se omite, por defecto es 9223372036854775807.

CYCLE Indica que, cuando la secuencia llegue a máximo valor (valor de "maxvalue") se reinicie, comenzando con el mínimo valor ("minvalue") nuevamente, es decir, la secuencia vuelve a utilizar los números. Si se omite, por defecto la secuencia se crea "nocycle", lo que produce un error si supera el máximo valor.

Si no se especifica ninguna cláusula, excepto el nombre de la secuencia, por defecto, comenzará en 1, se incrementará en 1, el mínimo valor será -9223372036854775808, el máximo será 9223372036854775807 y "nocycle".

Asociar Secuencia a campo de Tabla en PostgreSQL

Si vamos a crear una tabla nueva y queremos asociar una secuencia a un campo, este es el código:

Si ya existe la tabla y queremos asociar una secuencia a un campo, este es el coódigo:

Por ultimo vuelvo a repetir: Por lo general se utiliza para generar claves primarias.

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.

domingo, 12 de junio de 2016

Trabajando con Fechas y Horas en PostgreSQL

Vamos a trabajar con fechas y horas en PostgreSQL, así que empezamos.

Tipos Fecha/Hora
PostgreSQL soporta un conjunto completo de tipos SQL de datos de fecha y de hora. Los tipos de datos de fecha y hora del motor de base de datos PostgreSQL son:
(Imagen 1. Dar clic en la imagen para ver mas grande)


Fecha actual
(Imagen 2. Dar clic en la imagen para ver mas grande)

Sin zona horaria/Con zona horaria
(Imagen 3. Dar clic en la imagen para ver mas grande)

EXTRACT
(Imagen 4. Dar clic en la imagen para ver mas grande)

DATE_PART
(Imagen 5. Dar clic en la imagen para ver mas grande)

DATE_TRUNC
(Imagen 6. Dar clic en la imagen para ver mas grande)

INTERVAL
(Imagen 7. Dar clic en la imagen para ver mas grande)

Mas detalle en los siguientes enlaces:

sábado, 11 de junio de 2016

Crear objetos de base de datos PostgreSQL

Podemos crear cualquier objeto de base de datos PostgreSQL, desde el Maestro PostgreSQL, siguiendo los siguientes pasos:

1. Dar clic en la opción Create new database object.
(Imagen 1. Dar clic en la imagen para agrandar)

2. En la siguiente ventana se muestra los diferentes objetos que podemos crear en la base de datos PostgreSQL
(Imagen 2. Dar clic en la imagen para agrandar)

viernes, 10 de junio de 2016

Tipos de Datos PostgreSQL

En el siguiente enlace que pertenece a la documentación oficial, podrás obtener la información de los tipos de datos disponibles de PostgreSQL:

https://www.postgresql.org/docs/9.5/static/datatype.html

Tipos de datos de propósito general en PostgreSQL

A continuación un listado de los tipos de datos de carácter o propósito general, los más habituales:
(Imagen 1. Dar clic en la imagen para ver mas grande)