更新时间:2026-07-28 GMT+08:00
分享

关闭连接

libpq通常使用PQfinish函数来关闭与数据库的连接。如果应用程序建立了多个连接,则需要确保每个连接都被正确关闭。

示例如下(完整示例请参考数据库建连、执行SQL并返回结果):

/* 关闭入口 ... 不用检查错误 ... */
res = PQexec(conn, "CLOSE myportal");
PQclear(res);

/* 结束事务 */
res = PQexec(conn, "END");
PQclear(res);

/* 关闭数据库连接并清理 */
PQfinish(conn);

注意事项:

  • 无论连接成功、失败还是发生异常,都必须确保PQfinish被调用,否则会导致连接句柄泄漏,长期运行可能耗尽系统文件描述符或数据库连接数;
  • 先释放所有PGresult对象(调用PQclear),再关闭连接(调用PQfinish);
  • 多线程环境建议每个线程应使用独立的PGconn对象,关闭时需确保线程安全。

相关文档