Chapter 1. libpq - C 库

Table of Contents
1.1. 数据库联接函数
1.2. 查询执行函数
1.2.1. 主过程
1.2.2. 检索 SELECT 的结果信息
1.2.3. 检索 SELECT 结果数值
1.2.4. 检索非-SELECT 结果信息
1.3. 异步查询处理
1.4. 捷径
1.5. 异步通知
1.6. 与 COPY 命令相关的函数
1.7. libpq 跟踪函数
1.8. libpq 控制函数
1.9. 环境变量
1.10. 线程特性
1.11. 例子程序

libpqPostgresC 应用程序员的接口. libpq 是一套允许客户程序向 Postgres 后端服务进程发送查询 并且获得查询返回的库过程. libpq 同时也是其他几个 Postgres 应用接口下面的引擎, 包括 libpq++ (C++), libpgtcl(Tcl),Perl,和 ecpg.所以如果你使用这些软件包, libpq 某些方面的特性会对你非常重要.

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

../src/test/regress
../src/test/examples
../src/bin/psql
   

使用 libpq 的前端程序必须包括头文件 libpq-fe.h 并且必须与 libpq 库链接.

1.1. 数据库联接函数

下面的过程处理与 Postgres 后端服务器联接的事情. 一个应用程序一次可以与多个后端建立联接. (这么做的原因之一是访问多于一个数据库.) 每个连接都是用一个从PQconnectdb()PQsetdbLogin() 获得的PGconn对象表示. 注意,这些函数总是返回一个非空的对象指针, 除非存储器少得连个PGconn对象都分配不出来. 在把查询发送给联接对象之前,可以调用PQstatus 函数来检查一下联接是否成功.

libpq 应用程序员应该仔细维护 PGconn 结构. 使用下面的访问函数来获取 PGconn 的内容. 避免直接引用 PGconn 结构里的字段,因为这些字段在今后可能被改变. (从 Postgres 版本 6.4 开始, 结构 PGconn 的定义甚至 没有放在 libpq-fe.h里. 如果你有一些直接访问 PGconn 数据域的旧代码, 你可以通过包含 libpq-int.h 来访问它们,但我们鼓励你赶快修改那些代码.)