Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > Получение средствами С содержимого таблицы PGSQL


Автор: noVe 15.10.2008, 09:12
Подскажите, как получить содержимое таблицы PostgreSQL и вывести его на экран?

Автор: Kekek 15.10.2008, 09:41
Примерно, так.
Код

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

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

        conn = PQsetdbLogin(NULL, NULL, NULL, NULL, "base", "test", "123");
        if (PQstatus(conn) == CONNECTION_BAD)
        {
                printf("Connection to database 'base' failed.\n");
                printf("%s\n", PQerrorMessage(conn));
                return 1;
        }
        res = PQexec(conn, "SELECT * FROM table");
        if (PQresultStatus(res) != PGRES_TUPLES_OK)
        {
                printf("Error SELECT from table\n");
                printf("%s\n", PQerrorMessage(conn));
                PQfinish(conn);
                return 1;
        }
        for (i = 0; i < PQntuples(res); i++)
                printf("%s\n", PQgetvalue(res, i, PQfnumber(res, "row")));
        PQclear(res);
        PQfinish(conn);
        return 0;
}


Автор: noVe 15.10.2008, 15:16
Кидает ошибку:

undefined reference to `PQerrorMessage'
undefined reference to `PQexec'
undefined reference to `PQresultStatus'
undefined reference to `PQerrorMessage'
undefined reference to `PQfinish'
undefined reference to `PQfnumber'
undefined reference to `PQgetvalue'
undefined reference to `PQntuples'
undefined reference to `PQclear'
undefined reference to `PQfinish'

libpq-fe.h и иже с ним закинул в /usr/include

Автор: Kekek 15.10.2008, 16:10
А при линковке указал "-lpq" ?

Автор: noVe 16.10.2008, 08:21
Нет. А где?

P/S/ Использую Kdevelop

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)