Conectarse a PostgreSql con Delphi y ADO

PostgreSql es un motor de base de datos OpenSource cuya licencia BSD nos permite usarlo tanto en aplicaciones comerciales como en aplicaciones libres. Este SGBD tiene el respaldo de muchos años de desarrollo y que a la fecha en que escribo esto se distribuye en la versión 9.1.5.En esta entrada mostraré la manera en que podemos conectarnos a PostgreSql usando Delphi y ODBC. Al final realizaremos una tarea simple como abrir una tabla y mostrar el contenido en un Grid.

Para iniciar procederemos a descargar la versión psqlodbc_09_01_0200.zip que es la más reciente del Controlador ODBC de PostgreSql que pueden encontrar en el sitio: http://www.postgresql.org/ftp/odbc/versions/msi/ La documentación del controlador ODBC puede ser consultada en el sitio oficial de este proyecto en el sitio: http://psqlodbc.projects.postgresql.org/

 

Una vez que lo han descargado procederemos a descomprimirlo en un directorio de su elección. Despúes, abriremos el directorio en cuestión y ejecutaremos el archivo  psqlodbc.msi que nos llevará paso a paso con la instalación.  La instalación en realidad es muy sencilla pues el asistente no pide información técnica de ningún tipo por lo que nos dedicaremos a dar click en el botón siguiente durante el proceso. Así que adelante sin temor.

 

Una vez instalado el controlador ODBC, abriremos el administrador de Orígenes de datos ODBC que se localiza en Inicio / Panel de control / Herramientas administrativas /. Al encontrarlo en la ruta indicada daremos click al ícóno del administrador y nos aparecerá una ventana con múltiples pestañas, todas ellas para gestionar los distintos orígenes de datos ODBC.  Seleccionaremos la pestaña Dsn de sistema pues lo que en esta pestaña demos de alta estará disponible para todos los usuarios dados de alta en nuestro windows.

 

Ahora, daremos click en el botón “Agregar” y se nos mostrará un nuevo asistente. En esta ventana recorreremos la lista que se nos muestra y seleccionaremos la opción PostgreSql ODBC driver (Ansi).. en una siguiente entrada explicaré las diferencias entre los diferentes drivers que se nos muestran. Hecho esto damos click en finalizar.

 

Después de finalizar el asistente se nos mostrará la pantalla de configuración que nos permitirá definir los valores de conexión a nuestro motor de base de datos. Aquí aplica si   el servidor Postgre está en el equipo local (Windows) o en un equipo diferente (Linux, Windows, Unix, etc). En esta pantalla colocaremos la información de la siguiente manera:

  • Data source: (Nombre que le asignaremos al origen de datos)
  • Description: (Descripción del origen)
  • Database: Nombre de la base de datos (schema) a la que nos conectará.
  • Port: puerto en que responde el motor
  • Username: Nombre del usuario
  • Password: password de acceso

 

Como se puede observar la configuración es muy sencilla. Una vez establecidos los valores de conexión, presionaremos el botón Test para verificar que podemos establecer comunicación con Postgre, Lo cual de lograrse nos mostrará un mensaje con la leyenda: “Connection Succesful”.

Hasta este punto hemos instalado el controlador ODBC para PostgreSql y además se ha creado el Origen de datos que nos permitirá la comunicación. Ahora veremos como conectarnos a una tabla desde Delphi.

Primero, ejecutaremos Delphi y después crearemos en el menú File Seleccionaremos New/ Vcl Forms Application – Delphi para crear un nuevo proyecto. En el formulario principal que nos muestra delphi colocaremos los componentes: TADOConnection, TAdoTable, un TDataSource y un DbGrid, quedando la pantalla de la siguiente manera:

Ahora, vamos a configurar nuestros componentes para poder conectarnos a PostgreSql y mostrar el contenido de una tabla en nuestro formulario. Primero daremos doble click al componente TAdoConnection. para mostrar el asistente de conexión. En la ventana que se nos mostrará, se incluye un botón con la leyenda: “Build”, daremos click a ese botón y nos aparecerá la ventana siguiente:

 

En esta ventana buscaremos la opción Microsft OLEDB Providers or ODBC Drivers y la selecionaremos, hecho esto daremos click en la pestaña “Conexión”.

 

 

 

 

 

 

 

En esta nueva pantalla, seleccionaremos el nombre de origen de datos que previamente creamos, despúes indicaremos usuario y password así como la base de datos o schema al que nos vamos a conectar y por último seleccionaremos el Check “Permitir guardar contraseña”.

Hecho lo anterior podemos dar click en el botón “Probar Conexión” el cual nos dará el mensaje “La prueba de conexión fué satisfactoria”. Esto claro si hemos configurado correctamente nuestro enlace. De ocurrir algún error habrá que verificar usuario, password, schema, etc con que estamos configurando la conexión.

Después de presionar el botón “Aceptar” daremos click en el botón “Ok”, y buscaremos en el inspector de objetos la propiedad “Login Prompt” y la pondremos a False para evitar que nos pregunte usuario y contraseña.

Ok, con todo lo anterior estamos listos para conectarnos a una tabla. Así que seleccionaremos nuestro componente TAdoTable y en el inspector de objetos buscaremos la propiedad “Connection”, en esta propiedad expanderemos la lista para que nos aparezca “ADOConnection1” y seleccionaremos este valor. Así le decimos al componente TTable que se conectará a tavés de TAdoConnection a PostgreSql. Hecho lo anterior buscaremos la propiedad TableNAme y allí escribiremos el nombre de la tabla a la que deseamos conectarnos.

Importante*** Debido a problemas con el controlador, el nombre de la tabla debe ser escrito en minúsculas.

Ya que hayamos escrito el nombre buscaremos la propiedad Active y la cambiaremos a True. Despúes seleccionaremos el componente TDataSource y en el inspector de objetos bucaremos la propiedad Dataset. En esta propiedad daremos click y en la lista que se desplegará seleccionaremos “AdoTable1”.

Prácticamente hemos terminado… Ahora seleccionaremos nuestro DbGrid y buscaremos la propiedad DataSource, en ella daremos click y seleccionaremos “DataSource1” y hecho esto se nos mostrará la información contenida en nuestra tabla….

 

Y bueno… como pueden ver conectarse a PostgreSql desde Delphi es sumamente sencillo, además de que con este motor sus aplicaciones contarán con el respaldo de una base de datos considerada por muchos al nivel de Oracle.

Cualquier duda… ya saben… nos vemos en el foro…

8 Comments

4 Trackbacks / Pingbacks

  1. » Ejecutar Procedimientos almacenados de PostgreSql con Delphi y ADO
  2. » Vincular PostgreSql, Mysql u otro motor en Access usando ODBC
  3. PostgreSQL – psqlODBC 09.02.0100 Liberado. | Blog del Poli
  4. Delphi – Ejecutar Sentencias SQL de PostgreSql usando ADO | Blog del Poli

Deja un comentario