Cómo acceder a la consulta y manipulación de tablas de una base de datos PostgreSQL utilizando ODBC en Windows XP. Os mostramos y explicamos cómo acceder a PostgreSQL mediante AjpdSoft Administración de base de datos y mediante Microsoft Access.
- Descarga e instalación del driver ODBC para PostgreSQL.
- Crear origen de datos ODBC para acceso a PostgreSQL.
- Acceso a PostgreSQL con AjpdSoft Administración Bases de Datos y ODBC.
- Acceso a PosgreSQL con Microsoft Access y ODBC.
Descarga e instalación del driver ODBC para PostgreSQL
Descargaremos el fichero de instalación del driver ODBC de PostgreSQL abriendo un navegador web (como Mozilla Firefox), desde la URL:
https://www.postgresql.org/ftp/odbc/versions/msi/
En nuestro caso hemos seleccionado el fichero psqlodbc_08_04_0100.zip (última versión en la fecha de realización de este artículo), con un tamaño de 4MB. Una vez descargado el fichero, lo descomprimiremos y ejecutaremos el fichero «psqlodbc.msi»:
Pulsaremos «Next» en la ventana de bienvenida del asistente de instalación de psqlODBC:
Leeremos los términos de licencia de psqlODBC, si estamos de acuerdo marcaremos «I accept the terms in the License Agreement» y pulsaremos «Next»:
En la siguiente ventana del asistente de instalación de psqlODBC podremos cambiar la ubicación por defecto donde se instalarán los ficheros necesarios para el driver ODBC, por defecto en:
C:\Archivos de prorgrama\psqlODBC
Pulsaremos «Next» continuar con la instalación o «Browse» para cambiar la ubicación (carpeta) de destino):
Pulsaremos «Install» para iniciar la instalación final de psqlODBC:
Tras la instalación el asistente psqlODBC nos mostrará una ventana indicando que ha concluido satisfactoriamente, pulsaremos «Finish» para cerrar el asistente:
Crear origen de datos ODBC para acceso a PostgreSQL
Para crear un nuevo origen de datos ODBC en nuestro equipo con Windows XP (válido para otras versiones del sistema operativo Windows) pulsaremos en «Inicio» – «Configuración» – «Panel de control»:
Haremos doble clic sobre «Herramientas administrativas»:
Haremos doble clic sobre «Orígenes de datos (ODBC)»:
Si queremos que el origen de datos esté disponible para todos los usuarios del equipo pulsaremos en la pestaña (solapa) «DSN de sistema», si queremos que esté disponible sólo para el usuario actual (con el que hemos iniciado sesión de Windows) pulsaremos en «DSN de usuario». En nuestro caso pulsaremos en «DSN de sistema». A continuación pulsaremos en el botón «Agregar»:
En la ventana de selección de controlador para el origen de datos buscaremos «PostgreSQL ANSI» y lo seleccionaremos. A continuación pulsaremos en «Finalizar»:
Nota: en la lista se pueden ver dos controladores:
- PostgreSQL ANSI: conexión a servidor con PostgreSQL utilizando el juego de caracteres ANSI (American National Standards Institute).
- PostgreSQL Unicode: conexión a servidor con PostgreSQL utilizando el juego de caracteres Unicode.
A continuación, en la ventana de PostgreSQL ANSI ODBC Driver (psqlODBC) Setup introduciremos los siguientes datos:
- Data Source: nombre que identificará el origen de datos, para ser usado por otras aplicaciones. En nuestro caso «bdproyectoa».
- Description: breve descripción del origen de datos, para diferenciarlo de otros, por ejemplo «Conexión con PostgreSQL».
- Database: nombre de la base de datos PostgreSQL a la que queramos conectarnos (debe existir en el servidor de PostgreSQL). En nuestro caso existe una base de datos con el nombre «proyectoa».
- SSL Mode: si hemos configurado el servidor PostgreSQL para permitir conexiones SSL podremos elegirlo en el desplegable, si no lo hemos hecho seleccionaremos «disable».
- Server: IP o nombre de red (hostname) del equipo con el motor de base de datos PostgreSQL instalado. En nuestro caso «192.168.1.100».
- Port: puerto con el que tengamos configurado el acceso al servidor de PostgreSQL, por defecto 5432.
- User Name: nombre de usuario con permisos suficientes sobre la base de datos indicada. Por defecto «postgres».
- Password: contraseña del usuario anterior.
En la ventana anterior, una vez introducidos todos los datos, podremos pulsar el botón Test para realizar una prueba de conexión, si todo es correcto mostrará una ventana como la siguiente:
Con el texto: Connection successful.
Para guardar el origen de datos pulsaremos «Save».
Descarga e instalación del driver ODBC para PostgreSQL
Una vez instalado el driver ODBC para PostgreSQL y creado el origen de datos ODBC que apunta a la base de datos PostgreSQL podremos utilizar cualquier aplicación que permita conexión a bases de datos utilizando ODBC para acceder a PostgreSQL. En este ejemplo utilizaremos la aplicación gratuita y open source:
Descargaremos la aplicación, descomprimiremos el fichero comprimido y ejecutaremos el fichero «AdministracionSQL.exe». En la ventana de inicio de sesión marcaremos la opción «Conectar mediante ODBC (requiere BDE y Driver ODBC). En el desplegable «ODBC» seleccionaremos el origen de datos creado anteriormente, en nuestro caso «bdproyectoa». Introduciremos el usuario «postgres» (o un usuario con permisos para manipular datos en PostgreSQL) y la contraseña de este usuario (establecida en la instalación de PostgreSQL) y pulsaremos «Aceptar»:
Si todo es correcto AjpdSoft Administración Bases de Datos conectará con PostgreSQL y la base de datos indicada en el driver «bdproyectoa». A continuación podremos ejecutar consultas SQL.
Ejecutaremos la siguiente consulta SQL para crear la tabla «facturacion» en PostgreSQL:
1 2 3 4 5 |
CREATE TABLE facturacion ( codigo integer, cliente character varying(100) ) WITH (OIDS=FALSE) |
Haremos propietario al usuario «postgres» de la tabla creada anteriormente con la consulta SQL:
1 2 |
ALTER TABLE facturacion OWNER TO postgres |
Insertaremos algunos registros en la tabla «facturacion» con las sentencias SQL:
1 2 3 4 5 6 7 8 |
insert into facturacion values (1, 'Cliente AjpdSoft 1'); insert into facturacion values (2, 'Cliente AjpdSoft 2'); insert into facturacion values (3, 'Cliente AjpdSoft 3'); |
Mostraremos el contenido de la tabla «facturacion» con la sentencia SQL:
1 2 |
select * from facturacion |
Acceso a PosgreSQL con Microsoft Access y ODBC
Como hemos comentado anteriormente, una vez instalado y configurado el ODBC, podremos acceder con cualquier aplicación que admita ODBC. Microsoft Access también admite este método de conexión. A continuación explicamos cómo conectar Microsoft Access a una base de datos PostgreSQL.
Acceso a PosgreSQL con Microsoft Access Access 97
Abriremos Microsoft Access 97 y seleccionaremos «Base de datos en blanco»:
Introduciremos el nombre del fichero .mdb de Microsoft Access, por ejemplo «AjpdSoft acceso base datos postgresql.mdb» y la carpeta donde se creará y guardará el fichero:
En la pestaña «Tablas» pulsaremos en «Nuevo»:
En la ventana de «Nueva tabla» seleccionaremos «Vincular tabla» y pulsaremos «Aceptar»:
En la ventana «Vincular» en el desplegable «Tipo de archivo» seleccionaremos «Bases de datos ODBC»:
Nos mostrará la ventana de «Seleccionar origen de datos», seleccionaremos el origen de datos creado para conexión con PostgreSQL, en nuestro caso «bdproyectoa» y pulsaremos «Aceptar»:
Access conectará con PostgreSQL mediante ODBC y obtendrá las tablas a las que el usuario utilizado al crear el origen de datos tenga acceso, en nuestro caso «public.facturacion», marcaremos «Guardar contraseña» y pulsaremos «Aceptar»:
Si el asistente no es capaz de obtener la clave primaria de la tabla nos mostrará la ventana de «Seleccionar identificador de registro único», con todos los campos de la tabla seleccionada, para que indiquemos el que es clave primaria. Es recomendable tener una clave primaria en cada tabla y es recomendable indicar a Access cuál es esta clave en la tabla, de lo contrario puede que el rendimiento disminuya y, además es posible que no se puedan realizar modificaciones en la tabla PostgreSQL desde Access:
Una vez vinculada la tabla podremos usarla en Microsoft Access como si de una tabla Access se tratase, podremos hacer doble clic para abrirla y modificar, añadir o eliminar registros. también podremos utilizar en cualquier consulta, macro o formulario de Access: