database.c
author Markus Bröker <mbroeker@largo.dyndns.tv>
Sat, 13 Dec 2008 17:58:05 +0100
changeset 12 9f0ce4eaa1ce
parent 9 c3fecc82ade6
child 27 81a574d60c15
permissions -rw-r--r--
I added a small db_bridge to the repository committer: Markus Bröker <mbroeker@largo.homelinux.org>

/**
 * test/demos/database.c
 * Copyright (C) 2008 Markus Broeker
 */

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

int main (int argc, char **argv)
{
    char *conninfo;
    PGconn *conn;
    PGresult *res;
    int nFields;
    int i;
    int j;

    conninfo = "dbname=lightintron";

    conn = PQconnectdb (conninfo);
    if (conn == NULL)
        printf ("ERROR\n");
    else
        printf ("SUCCESS\n");

    if (argc != 2)
        res = PQexec (conn, "select \"MNr\", \"Name\", \"Vorname\", \"Bemerkungen\" from \"Mitarbeiter\"");
    else
        res = PQexec (conn, argv[1]);

    /*
     * first, print out the attribute names
     */
    nFields = PQnfields (res);
    for (i = 0; i < nFields; i++)
        printf ("%-15s", PQfname (res, i));
    printf ("\n\n");

    /*
     * next, print out the rows
     */

    for (i = 0; i < PQntuples (res); i++) {
        for (j = 0; j < nFields; j++) {
            if (!strcmp (PQfname (res, j), "message"))
                printf ("\n");
            printf ("%-15s", PQgetvalue (res, i, j));
        }
        printf ("\n");
    }

    PQclear (res);

    PQfinish (conn);

    return EXIT_SUCCESS;
}