第五十三章. libpq - C 库

内容
数据库联接函数
查询执行函数
异步查询处理
捷径
异步通知
与 COPY 命令相关的函数
libpq 跟踪函数
libpq 控制函数
环境变量
线程特性
例子程序
libpq 是 Postgres 的 C 应用程序员的接口.libpq 是一套允许客户程序向 Postgres 后端服务进程发送查询并且获得查询返回的库过程.libpq 同时也是其他几个 Postgres 应用接口下面的引擎,包括 libpq++ (C++),libpgtcl (Tcl), perl5,ecpg.所以如果你使用这些软件包,libpq 某些方面的特性会对你非常重要.

本节末尾有三个小程序显示如何利用 libpq 书写程序.在下面目录里面有几个完整的 libpq 应用的例子:
 

../src/test/regress
../src/test/examples
../src/bin/psql
使用 libpq 的前端程序必须包括头文件 libpq-fe.h 并且必须与 libpq 库链接.
 

数据库联接函数

下面的过程处理与 Postgres 后端服务器联接的事情.一个应用程序一次可以与多个后端建立联接.(这么做的原因之一是访问多于一个数据库.)每个连接都是用一个从 PQconnectdb() 或 PQsetdbLogin()获得的 PGconn 对象表示.注意,这些函数总是返回一个非空的对象指针,除非存储器少得连个 PGconn 对象都分配不出来.在把查询发送给联接对象之前,可以调用 PQstatus 函数来检查一下联接是否成功. libpq 应用程序员应该仔细维护 PGconn 结构.使用下面的访问函数来获取 PGconn 的内容.避免直接引用 PGconn 结构里的字段,因为这些字段在今后可能被改变.(从PostgreSQL 版本 6.4 开始, 结构 PGconn 的定义甚至没有放在 libpq-fe.h 里.如果你有一些直接访问 PGconn 数据域的旧代码,你可以通过包含 libpq-int.h 来访问它们,但我们鼓励你赶快修改那些代码.)