martes, 27 de octubre de 2009

Ejemplo de Conexión de C/C++ con PostgreSQL


#include <stdio.h>
#include <libpq-fe.h>

int main()
{
PGconn *conn;
PGresult *res;
int i,j;

conn = PQsetdbLogin("ip","5432",NULL,NULL,"database","user","password");

if (PQstatus(conn) != CONNECTION_BAD)
{
res = PQexec(conn, "select * from tabla");

if (res != NULL && PGRES_TUPLES_OK == PQresultStatus(res))
{
for (i = PQntuples(res)-1; i >= 0; i--)
{
for (j = PQnfields(res)-1; j >= 0; j--)
printf("%s\t",PQgetvalue(res,i,j));
printf("\n"));
}
PQclear(res);
}
}

PQfinish(conn);
return 0;
}


Y para compilar:

gcc db.c -o db -lpq -I/usr/include/postgresql/


Debemos tener instalado el paquete libpq-dev

3 comentarios:

  1. bueenas!!! como hago para instalar el paquete libpq-dev en opensuse????? lo necesito para poder compilar un programa. por favor me podrian ayudar.

    ResponderEliminar
  2. o raios andamos = no puedo instalar ese paquete libpq-dev alguien puede especificar como es k nadamas me aparce libpq5, libpqxx, libpqxx-devel.

    ResponderEliminar
  3. Espero que me puedas ayudar compile el programa en Suse y me marca estos errores.

    localhost:/home/inaoe19895 # g++ conexion.cpp -o conexion -lpq -I /usr/include/pgsql/
    localhost:/home/inaoe19895 # g++ conexion
    conexion:(.rodata+0x0): multiple definition of `_IO_stdin_used'
    /usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64/crt1.o:(.rodata.cst4+0x0): first defined here
    conexion: In function `__data_start':
    (.data+0x8): multiple definition of `__dso_handle'
    /usr/lib64/gcc/x86_64-suse-linux/4.3/crtbegin.o:(.data+0x0): first defined here
    conexion: In function `_fini':
    /usr/src/packages/BUILD/glibc-2.9/cc-nptl/csu/crti.S:38: multiple definition of `_fini'
    /usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64/crti.o:/usr/src/packages/BUILD/glibc-2.9/cc-nptl/csu/crti.S:38: first defined here
    conexion: In function `_start':
    /usr/src/packages/BUILD/glibc-2.9/csu/../sysdeps/x86_64/elf/start.S:65: multiple definition of `_start'
    /usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64/crt1.o:/usr/src/packages/BUILD/glibc-2.9/csu/../sysdeps/x86_64/elf/start.S:65: first defined here
    conexion: In function `_init':
    /usr/src/packages/BUILD/glibc-2.9/cc-nptl/csu/crti.S:25: multiple definition of `_init'
    /usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64/crti.o:/usr/src/packages/BUILD/glibc-2.9/cc-nptl/csu/crti.S:25: first defined here
    conexion: In function `__data_start':
    (.data+0x0): multiple definition of `__data_start'
    /usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64/crt1.o:(.data+0x0): first defined here
    /usr/lib64/gcc/x86_64-suse-linux/4.3/crtend.o:(.dtors+0x0): multiple definition of `__DTOR_END__'
    conexion:(.dtors+0x8): first defined here
    /usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: error in conexion(.eh_frame); no .eh_frame_hdr table will be created.
    collect2: ld returned 1 exit status

    ResponderEliminar

Compilar warzone2100 2.3.9 en Ubuntu 16.04 para equipos que no soportan OpenGL >= 2.0

Instalar Paquetes apt-get install build-essential automake flex bison libpopt-dev libpng12-dev libsdl1.2-dev libopenal-dev  libphysfs-dev li...