Conexión con una base de datos PostgreSQL en C

Un pequeño ejemplo de como conectarse a una base de datos PostgreSQL y ejecutar una consulta SQL.
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <errno.h>

#include <libpq-fe.h>

int main(int argc __attribute__ ((unused)), char **argv __attribute__ ((unused))) {
  int pg_lib_version = PQlibVersion();
  PGconn *con;
  PGresult *res;
  int num_registros = 0;

  fprintf(stderr, "Versión de la librería de PostgreSQL: %d\n", pg_lib_version);

  con = PQconnectdb("dbname=qpasos host=pgsql-master user=qpasos password=qpasos");
  if (PQstatus(con) == CONNECTION_BAD) {
    fprintf(stderr, "Error al conectar con la base de datos PostgreSQL\n");
    return EXIT_FAILURE;
  }
  res = PQexec(con, "select * from tabla_pasos where fecha >= '2018-01-01'");
  if (PQresultStatus(res) != PGRES_TUPLES_OK) {
    fprintf(stderr, "No se han obtenido datos\n");
    return EXIT_FAILURE;
  }
  num_registros = PQntuples(res);
  fprintf(stderr, "Se encontraron %d registros\n", num_registros);
  for (int i=0 ; i<num_registros ; i++) {
    for (int j=0 ; j<5 ; j++) {
      fprintf(stdout, "%s\t", PQgetvalue(res, i, j));
    }
  putchar('\n');
  }

  PQclear(res);
  PQfinish(con);

  return EXIT_SUCCESS;
}
Compilaríamos ese código con:
gcc -o fuente fuente.c -I`pg_config --includedir` -L`pg_config --libdir` -lpq

No hay comentarios:

Publicar un comentario