Skip navigation

Category Archives: Programación

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;
#include <iostream>
#include <libpq-fe.h>

PGconn *cnn = NULL;
PGresult *result = NULL;

char *host = "localhost";
char *port = "5432";
char *dataBase = "DataBase";
char *user = "postgres";
char *passwd = "password";

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 * FROM nombre_tabla");

        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<campos; i++) {
                cout << PQfname(result,i) << " | ";
            }

            cout << endl << "Contenido de la tabla" << endl;

            for (i=0; i<tuplas; i++) {
                for (int j=0; j<campos; 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.html

Anuncios

Una de las primeras computadoras, propiedad de las fuerzas armadas se negaba un día a imprimir unos datos importantes. Luego que sus programadores trataron durante varias horas de encontrar algún error en el programa, una de ellos, llamada Grace Hoper, decidió inspeccionar la impresora.
Grace halló que había una pequeña polilla alojada entre dos cables importantes. Cuando extrajo la polilla de allí, la impresora comenzó a funcionar perfectamente (aunque se desconoce si la polilla tuvo la misma suerte).
Grace Hoper es en la actualidad una almirante retirada de la Marina, y aunque entre sus antecedentes figure el desarrollo de varios conceptos informáticos importantes (fue la autora de la versión original del lenguaje COBOL), resulta más conocida por haber encontrado el primer bug (bicho) presente en una computadora.
A pesar de que lo que descubrió la almirante Hoper era un bug verdadero (la polilla) los errores presentes en los programas de computación (y en el hardware) se han denominado de allí en más bugs de computación. Cuando usted comprueba un programa, puede llegar a tener que depurarlo o desbicharlo (debug), o sea, eliminar los bugs (errores) mediante la corrección de las inconsistencias de tipeo en el código fuente o la modificación de la lógica implementada de manera que el programa haga exactamente lo que se desea.

Fuente:
Libro “C con ejemplos”
Greg Perry
Prentice Hall
Pag. 14