下面是一个简单的 PostgreSQL 示例程序,演示了如何连接到数据库、执行查询并处理结果。在运行这个示例之前,请确保已经安装了 PostgreSQL 并创建了一个数据库以及相应的表。同时,确保已经按照之前的回答中提到的方式编写了一个使用 libpq 的程序。
#include <stdio.h>
#include <libpq-fe.h>

int main() {
    // 连接字符串,替换为你的实际数据库信息
    const char *conninfo = "dbname=mydatabase user=myuser password=mypassword host=myhost port=myport";

    // 建立数据库连接
    PGconn *conn = PQconnectdb(conninfo);

    // 检查连接是否成功
    if (PQstatus(conn) != CONNECTION_OK) {
        fprintf(stderr, "Connection to database failed: %s", PQerrorMessage(conn));
        PQfinish(conn);
        return 1;
    }

    // 执行查询
    const char *query = "SELECT * FROM mytable";
    PGresult *res = PQexec(conn, query);

    // 检查查询是否成功
    if (PQresultStatus(res) != PGRES_TUPLES_OK) {
        fprintf(stderr, "Query execution failed: %s", PQresultErrorMessage(res));
        PQclear(res);
        PQfinish(conn);
        return 1;
    }

    // 处理查询结果
    int rows = PQntuples(res);
    int cols = PQnfields(res);
    printf("Query returned %d rows and %d columns.\n", rows, cols);

    for (int i = 0; i < rows; ++i) {
        for (int j = 0; j < cols; ++j) {
            printf("%s\t", PQgetvalue(res, i, j));
        }
        printf("\n");
    }

    // 释放结果集和连接
    PQclear(res);
    PQfinish(conn);

    return 0;
}

请注意,这只是一个简单的演示程序,实际的应用程序可能需要更多的错误处理和安全考虑。确保连接字符串、查询字符串和结果处理逻辑符合你的实际需求。


转载请注明出处:http://www.zyzy.cn/article/detail/8389/PostgreSQL