[C con Clase] Ayuda con ejemplo de conexión C++ con Postgres

paolo alvarado wapva en yahoo.es
Dom Mar 30 23:18:50 CEST 2014


Hola, buenas tardes

Estoy tratando de hacer funcionar un programa simple que se conecta a Postgres usando la librería LIBPQ. El programa es el siguiente:

CONEXION_PG.CPP

#include <iostream>
#include "libpq-fe.h"
#include <stdio.h>
using namespace std;

char pghost[] = "localhost";
char pgport[] = "5432";
char pgbase[] = "bdprueba";
char pguser[] = "postgres";
char pgpass[] = "123456";
char conninf[] = "host=localhost port=5432 database=postgres user=postgres password=123456";

int main(){
PGconn *conn = PQsetdbLogin(pghost,pgport,NULL,NULL,pgbase,pguser,pgpass);

if (PQstatus(conn) == CONNECTION_OK)
{
//if connected
cout<<"Ok.\n";
}
else
{
cout<<"ERROR: %s\n";
PQfinish(conn);
}
return 0;
}

- La plataforma sobre la que trabajo es Windows7 64bits
- El compilador que estoy usando es MinGW 5.1.6

- Compilé el programa sin ningún error de la siguiente forma:
mingw32-g++ -o D:\practicas_c++\conexion_bd_pg\conexion_pg.exe D:\practicas_c++\conexion_bd_pg\conexion_pg.cpp -ID:\PostgreSQL\9.2\include -LD:\PostgreSQL\9.2\lib -lpq


- Al ejecutar  conexion_pg.exe, windows me muestra un mensaje de error:
La aplicación no se pudo iniciar correctamente (0xc000007b). Haga clic en Aceptar para cerrarla

Nota: como trabajo con postgres sobre windows, no existía el archivo libpq.a por lo que tuve que generarlo a a partir de libpq.dll siguiendo unos pasos que encontré en internet:
Primero D:\PostgreSQL\9.2\lib>reimp -d libpq.lib
Luego D:\PostgreSQL\9.2\lib>dlltool --input-def libpq.def --dllname libpq.dll --output-lib libpq.a -k

Ojalá que alguien puede ayudarme con este problema ya que tengo varios días sin poder encontrar la solución, desde ya agradezco la ayuda que me puedan brindar.

Atte.

Walter
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20140330/e05f7a11/attachment.html>


Más información sobre la lista de distribución Cconclase