第 56 章 libpgeasy - 简化 C 绑定库
作者
由 Bruce Momjian 编写(pgman@candle.pha.pa.us),最后更新于 2000-03-30。
pgeasy 让你能够干净地接口到 libpq 库,更像是 4GL 的 SQL 接口。
它由一组封装了 libpq 功能的简化 C 函数组成。这些函数是:
PGresult *doquery(char *query);
PGconn *connectdb(char *options);
void disconnectdb();
int fetch(void *param,...);
int fetchwithnulls(void *param,...);
void reset_fetch();
void on_error_continue();
void on_error_stop();
PGresult *get_result();
void set_result(PGresult *newres);
void unset_result(PGresult *oldres);
许多函数会返回一个结构或值,因此在需要时你可以对结果做更多的工作。
基本上你用 connectdb 连接到数据库,用 doquery 发出查询,用 fetch 取回结果,最后用 disconnectdb 结束。
对于 SELECT 查询,fetch
允许你把指针作为参数传递,返回时这些变量将被你打开的二进制游标中的数据填充。如果你运行 pgeasy
客户端的系统与数据库服务器的体系结构不同,这些二进制游标就无法使用。如果你传递一个 NULL 指针参数,该列会被跳过。fetchwithnulls 允许你取回字段的 NULL
状态,方法是在每个结果指针之后传递一个 int*,字段为空时它返回真或假。你总是可以在 doquery 返回的 PGresult 指针上使用 libpq 函数。reset_fetch 把取回操作重置回开头。
get_result、set_result
和
unset_result
允许你同时处理多个结果集。
源代码目录中有各种各样的示例程序。