Con esta publicación se intenta proveer una guía inicial en cuanto a la conectividad de PostgreSql y algunos lenguajes de programación. Los ejemplos han sido probados en linux Debian (a menos que se indique lo contrario), pero debe de funcionar normalmente en cualquier otra distribución, solo instalando los paquetes equivalentes.
¿Cómo conectarse desde JAVA via JDBC?
Requisitos:
- Descargar el controlador necesario, según la versión del gestor, en mi caso este (http://jdbc.postgresql.org/download/postgresql-8.4-702.jdbc3.jar)
- Agregar el driver al CLASSPATH:
jurasec@dev:~/test$ CLASSPATH=.:postgresql-8.4-702.jdbc3.jar
Ejemplo
import java.sql.*; public class Conexion { public static void main(String args[]) { Connection conn; Statement stat; ResultSet rset; try{ Class.forName("org.postgresql.Driver"); conn=DriverManager.getConnection("jdbc:postgresql:test","postgres","postgres"); stat=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); rset = stat.executeQuery("SELECT id,descripcion FROM articulos"); while (rset.next()) { System.out.println(rset.getString(1)+" - "+rset.getString(2)); } rset.close(); stat.close(); }catch(Exception e){ System.out.println("Error: "+e.getMessage()); } } }
¿Cómo conectarse a C# con (Npgsql)?
Este ejemplo ha sido probado sobre Windows con .NET y en Linux con Mono
Requisitos:
- Para Windows descargar el driver http://pgfoundry.org/frs/?group_id=1000140
- Para linux instalar libmono-npgsql2.0-cli
Ejemplo
using System; using System.Data; using Npgsql; public class Conexion{ public static void Main(string[] args){ string connectionString = "Server=localhost;" + "Database=test;" + "User ID=postgres;" + "Password=postgres;"; IDbConnection dbcon; dbcon = new NpgsqlConnection(connectionString); dbcon.Open(); IDbCommand dbcmd = dbcon.CreateCommand(); string sql = "SELECT id,descripcion FROM articulos"; dbcmd.CommandText = sql; IDataReader reader = dbcmd.ExecuteReader(); while(reader.Read()) { int id = reader.GetInt32(reader.GetOrdinal("id")); string descripcion = reader.GetString(reader.GetOrdinal("descripcion")); Console.WriteLine(id + " - " + descripcion); } reader.Close(); reader = null; dbcmd.Dispose(); dbcmd = null; dbcon.Close(); dbcon = null; } }
Compilando el ejemplo:
gmcs Conexion.cs -r:System.Data.dll -r:Npgsql.dll
Para ejecutarlo:
mono Conexion.exe
¿Cómo conectarse desde PHP?
Requisitos:
- Instalar php5-pgsql
Ejemplo
$dbconn = pg_connect("host=localhost dbname=test user=postgres password=postgres") or die('No se pudo conectar: ' . pg_last_error()); $query = 'SELECT id,descripcion FROM articulos'; $result = pg_Exec($query) or die('Error: ' . pg_last_error()); echo "\n"; while ($line = pg_fetch_object($result)) { echo "\t\n"; foreach ($line as $col_value) { echo "\t\t\n"; } echo "\t\n"; } echo "
$col_value |
¿Cómo conectarse desde Python 2.x (psycopg2)?
Requisitos:
- Instalar python-psycopg2
Ejemplo
import psycopg2 try: con = psycopg2.connect("host=localhost dbname=test user=postgres password=postgres") cursor = con.cursor() cursor.execute("select id,descripcion from articulos") for row in cursor: id,descripcion=row print id,descripcion cursor.close() con.close() except: print "Error"
¿Cómo conectarse desde Python 3 (psycopg2)?
Requisitos:
- Descargar el driver de http://python.projects.postgresql.org/
- Descomprimir e instalar el driver:
python3 setup.py install
Ejemplo
import postgresql try: db = postgresql.open("pq://postgres:postgres@localhost/test") ps = db.prepare("SELECT id,descripcion from articulos") for row in ps: id,descripcion=row print (id,descripcion) except: print ("Error")
¿Cómo conectarse desde C?
Requisitos:
- Instalar postgresql-server-dev-8.4
Ejemplo
#include <stdio.h> #include <libpq-fe.h> int main(){ PGconn *conn; PGresult *res; int i,j; conn = PQsetdbLogin("localhost","5432",NULL,NULL,"test","postgres","postgres"); if (PQstatus(conn) != CONNECTION_BAD){ res = PQexec(conn, "select id,descripcion from articulos"); if (res != NULL && PGRES_TUPLES_OK == PQresultStatus(res)){ for (i = 0; i < PQntuples(res); i++){ for (j = 0; j < PQnfields(res); j++) printf("%s\t",PQgetvalue(res,i,j)); printf("\n"); } PQclear(res); } } else printf("Error"); PQfinish(conn); return 0; }
Compilando el ejemplo:
gcc db.c -o db -lpq -I/usr/include/postgresql/
¿Cómo conectarse desde Perl?
Requisitos:
- Instalar libdbi-perl
Ejemplo
#!/usr/bin/perl use DBI; #use strict; my $dbh = DBI->connect("DBI:Pg:dbname=test;host=localhost", "postgres", "postgres"); $dbh->{RaiseError} => 1; #ref my $sth = $dbh->prepare("SELECT id,descripcion FROM articulos"); $sth->execute(); while(my $ref = $sth->fetchrow_hashref()) { print "$ref->{'id'} - $ref->{'descripcion'}\n"; } $sth->finish; $dbh->disconnect; exit;
¿Cómo conectarse desde Ruby on Rails?
Requisitos:
- Instalar libdbd-pg-ruby1.8
rails -d postgresql test_appEditamos el archivo config/database.yml con los parámetros necesarios para la conexión con Pgsql
development: adapter: postgresql database: test username: postgres password: postgres host: localhostGeneramos el controlador y el modelo necesario:
ruby1.8 script/generate controller Articulo ruby1.8 script/generate model ArticuloCreamos la base necesario para poder ver, crear, actualizar y eliminar los datos de la tabla Articulos
class ArticuloController < ApplicationController scaffold :articulo endVeamos el resultado en http://0.0.0.0:3000/articulo
Los siguientes ejemplos estan probados en Windows Xp, Vista, 7
¿Cómo conectarse desde Visual Basic 6 (ADO)?
Requisitos:
- Descargar e instalar el controlador odbc (http://www.postgresql.org/ftp/odbc/versions/msi/)
Ejemplo
Set cn = CreateObject("ADODB.Connection") cn.Open "Driver={PostgreSQL ANSI};SERVER=localhost;DATABASE=test;PORT=5432;UID=postgres;PWD=postgres;" Set rs = CreateObject("ADODB.Recordset") rs.Open "SELECT id,descripcion FROM articulos", cn Do Until rs.EOF Debug.Print rs!id, rs!descripcion rs.MoveNext Loop¿Cómo conectarse desde Visual FoxPro?
Requisitos:
- Descargar e instalar el controlado odbc (http://www.postgresql.org/ftp/odbc/versions/msi/)
Ejemplo
strConnection = 'DRIVER={PostgreSQL Ansi};SERVER=localhost;'+; 'PORT=5432;DATABASE=test;'+; 'UID=postgres;' +; 'PWD=postgres;' SQLSETPROP(0,'DispLogin',3) && evita que aparezca el login del DSN ODBC conn = SQLSTRINGCONNECT(strConnection,.F.) IF conn = -1 AERROR(arrayerror) IF arrayerror(4)='28000' THEN MESSAGEBOX('Usuario y/o contraseña incorrectos',16,'Error') ENDIF ELSE MESSAGEBOX('Conectado') ssql="select id,descripcion from articulos" status = SQLEXEC(conn,ssql,'cCursor') IF status=-1 MESSAGEBOX('Error en la consulta') RETURN ELSE select cCursor browse ENDIF ENDIF
¿Cómo conectarse desde Access?
Requisitos:
- Descargar e instalar el controlado odbc (http://www.postgresql.org/ftp/odbc/versions/msi/)
Creamos una base de datos vacía.
Elegimos importar base de datos ODBC.
Elegimos la vinculación de datos.
Creamos un nuevo origen de datos, seleccionando PostgreSql.
Configuramos origen de datos.
Guardamos el origen configurado y luego se selecciona de la lista.
Se seleccionan las tablas que se desean vincular.
Resultado.