En esta ocasión quiero compartir con ustedes un pequeño programa
escrito en C++ sumamente sencillo, el cual establece una conexión al
servidor de DB PostgreSQL y realiza una consulta a los datos almacenados
en una tabla, además de que muestra en consola un poco mas de
información.
using namespace std;
// para compilar: g++ conect.cpp -o connPgSQL -Wall -I/usr/local/pgsql/include -L/usr/local/pgsql/lib -lpq
#include iostream //colocar < >
#include /usr/include/postgresql/libpq-fe.h
PGconn *cnn = NULL;
PGresult *result = NULL;
const char *host = "localhost";
const char *port = "5432";
const char *dataBase = "bd_uecam";
const char *user = "admin";
const char *passwd = "admin123";
int main(int argc, char * argv[])
{
int i;
cnn = PQsetdbLogin(host,port,NULL,NULL,dataBase,user,passwd);
if (PQstatus(cnn) != CONNECTION_BAD) {
cout << "Estamos conectados a PostgreSQL!" << endl;
result = PQexec(cnn, "SELECT UPPER(nombre) FROM tbl_alumnos");
if (result != NULL) {
int tuplas = PQntuples(result);
int campos = PQnfields(result);
cout << "No. Filas:" << tuplas << endl;
cout << "No. Campos:" << campos << endl;
cout << "Los nombres de los campos son:" << endl;
for (i=0; i cout << PQfname(result,i) << " | ";
}
cout << endl << "Contenido de la tabla" << endl;
for (i=0; i for (int j=0; j cout << PQgetvalue(result,i,j) << " ";
}
cout << endl;
}
}
// Ahora nos toca liberar la memoria
PQclear(result);
} else {
cout << "Error de conexion" << endl;
return 0;
}
PQfinish(cnn);
return 0;
}
Para establecer la conexion con la Base de Datos nos apoyamos en libpq, la cual es un conjunto de librerias escritas en C que permite a un programa cliente enviarle consultas al servidor de PostgreSQL y recibir el resultado de éstas.
Como podemos observar se ha incluido en la cabecera del programa el archivo libpq-fe.h, el cual es el encargado de incluir las librerias de libpq.
Para compilar el programa, desde la consola escribimos lo siguiente:
#
g++ connPgSQL.cpp -o connPgSQL -Wall -I/usr/local/pgsql/include -L/usr/local/pgsql/lib -lpq
Como podemos observar ocupamos el compilador GCC (g++) ya que se trata de un programa escrito en C++:
connPgSQL.cpp
es el nombre del archivo fuente .-o connPgSQL
le indica al compilador que genere un archivo ejecutable llamado connPgSQL.-I/ruta
indicamos el path donde se encuentran los archivos que estamos incluyendo en el programa fuente.-L/ruta
especifica la ruta del directorio donde el compilador va a buscar los archivos de biblioteca.-Wall
le indicamos que nos muestre en pantalla todos los posibles advertencias que se producen durante el proceso de compilación.-lpq
con esta opción le indicamos al “linker” ld que localize y utilice las librerias necesarias para el programa.Fuentes:
http://gcc.gnu.org/
http://www.postgresql.org/docs/8.2/interactive/libpq.htm