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)

jueves, 9 de junio de 2016

Trabajando con PostgreSQL Maestro

PostgreSQL Maestro es una herramienta de administración grafica para la gestión de bases de datos, control y desarrollo. Las características principales son:

- Soporta todas las versiones de PostgreSQL desde la versión 7.3
- Fácil gestión de objetos de base de datos
- Cuenta con un diseñador de bases de datos
- Permite escribir y ejecutar scripts
- Permite importar/exportar datos desde los formatos más populares
- Dispone de un visor y editor de columnas BLOB

Mas detalles en: http://www.sqlmaestro.com/products/postgresql/maestro/

Conectar una base de datos existente

Ya tienes instalado PostgreSQL, el driver ODBC, PostgreSQL Maestro y ya tienes una base de datos, entonces sigue los siguientes pasos:

1. Abrimos PostgreSQL Maestro y dar clic en connect to an existing database
(Imagen 1. Dar clic en la imagen para ver mas grande)

2. En la siguiente ventana ingresar los parametros de conexión y clic en el botón Next:
(Imagen 2. Dar clic en la imagen para ver mas grande)

3. En la siguiente ventana:

(1) Seleccionamos la base de datos 
(2) Clic en el botón con flecha > 
(3) Clic en el botón Next 
(Imagen 3. Dar clic en la imagen para ver mas grande)

4. En la siguiente ventana clic en el botón Ready
(Imagen 4. Dar clic en la imagen para ver mas grande)

Listo, ya puedes empezar a trabajar.

miércoles, 8 de junio de 2016

Conexión a PostgreSQL desde PowerBuilder Classic 12.5

Para conectarse a una Base de Datos PostgreSQL desde PowerBuilder Classic 12.5 seguimos los siguientes pasos:

1. En la siguiente ruta: C:\Windows\SysWOW64 ubicamos odbcad32 y le damos doble clic

2. En la siguiente ventana Administrador de orígenes de datos ODBC:

Primero: Clic en el botón Agregar
Segundo: Elegir PostgreSQL Unicode y dar clic en Finalizar
Tercero: Ingresar los siguientes datos:

Data Source  = Nombre del driver de conexión
Database      = Nombre de la base de datos a conectar
Server           = Nombre o dirección del servidor
User Name   = Nombre de usuario (por defecto postgres)
Password      = Contraseña de usuario
Luego dar clic en el botón Test para comprobar si la conexión es satisfactoria y posteriormente clic en el botón Save.

3. En PowerBuilder, clic derecho al driver ODB ODBC opción New Profile
4. En la siguiente ventana Database Profile Setup - ODBC:

Primero: En la pestaña Connection ingresamos los datos de conexión 
 Segundo: En la pestaña Preview clic en botón Test Connection y listo.
5. En el evento open del objeto Application, se debe colocar la cadena de conexión:

//----------------------------------------------------------------------------------------------------
// Conexión a Base de Datos
//----------------------------------------------------------------------------------------------------
// Profile BDMASTER
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=PGMaster;UID=postgres;PWD=CONTRASEÑA'"

CONNECT USING SQLCA;
//----------------------------------------------------------------------------------------------------

martes, 7 de junio de 2016

Trabajando con PowerBuilder y PostgreSQL

He recibido preguntas a mi correo sobre como trabajar con PowerBuilder y PostgreSQL como motor de base de datos, por tal motivo me anime a escribir este post.

Según mi experiencia trabajando buen tiempo ya con PostgreSQL es que este motor de base de datos libre es muy potente y multiplataforma, es una buena alternativa.

Para empezar necesitamos lo siguiente:

- Descargar e instalar PostgreSQL: 

- Descargar e instalar el driver ODBC: 

- Para administrar PostgreSQL usar pgAdmin que esta incluido en el instalador de PostgreSQL o Maestro PostgreSQL que es una herramienta de pago, pero la cual recomiendo usar (futuros post que publique estare adjuntando imágenes de ejemplo con esta herramienta). Pueden descargalo e instalarlo por 30 días desde este enlace: