libpq++ 是 Postgres 的 C++ API (接口)。 libpq++ 是一个 C++ 类的集合,这些类允许客户端程序与 Postgres 后端服务器进行联接。联接有两种形式:一个数据库类和一个大对象类。
数据库类用于操作数据库,你可以向 Postgres 后端服务器发送任何 SQL 查询并检索服务器的返回。
大对象类用于操作数据库中的大对象。 尽管一个大对象实例可以给 Postgres 后端发送正常的查询,但通常只是用于那些不返回任何数据的简单查询。 一个大对象应该看作一个文件流。以后它应该显得更象 C++ 文件流 cin, cout 和 cerr。
本章基于 libpq C 库的文档。 本章的末尾有三个短程序列出来作为 libpq++ 编程的例子(尽管不是很好的编程例子)。 在src/libpq++/examples里有好几个 libpq++ 应用的例子,包括本章的三个例子的源码。
下面的环境变量可以在一个环境里设置缺省值 以避免在应用程序里面把数据库名放到硬代码里:
注意: 请参考 Section 1.9 获取一个可用联接选项的完整列表。
下面的环境变量可以用于选择缺省的联接参数值, 这些值将被PQconnectdb或PQsetdbLogin使用 --如果调用代码没有直接声明相应值的话.这些(环境变量) 可以避免把麻烦的数据库名强加入简单的应用程序的硬代码里面。
注意: libpq++ 只使用环境变量或者 PQconnectdb conninfo 风格的字串。
PGHOST 设置缺省的服务器名. 如果它以斜扛开头,声明的是 Unix 域套接字通讯,而不是 TCP/IP 通讯;字串值就是套接字文件存放的路径(缺省是 "/tmp").
PGPORT 设置与 Postgres 后端通讯的缺省端口号或本地 Unix 主控套接字的文件扩展(文件标识符).
PGDATABASE 设置缺省的 Postgres 数据库名.
PGUSER 设置用于与数据库联接和用于认证的用户名.
PGPASSWORD 如果后端要求口令认证,设置使用的口令.
PGREALM 设置与 Postgres 一起使用的 Kerberos 域 如果该域与本地域不同的话。 如果设置了 PGREALM,Postgres 应用将试图用这个域(realm)与服务器进行认证并且使用独立的门票文件 (ticket files) 以避免与本地的门票文件冲突. 只有在后端选择了 Kerberos 认证时才使用这个环境变量. (译注:门票文件是 Kerberos认证协议中用于交换密钥的一个文件/服务器。)
PGOPTIONS 为 Postgres 后端设置附加的运行时选项.
PGTTY 设置后端调试信息显示输出的文件或者控制台(tty).
下面的环境变量可以用于为每个 Postgres 会话声明用户级别的缺省特性:
PGDATESTYLE 设置缺省的日期/时间表现形式.
PGTZ 设置缺省的时区.
下面的环境变量可以用于为每个 Postgres 会话声明缺省的内部特性:
PGGEQO 为基因优化器设置缺省模式.
参阅 SET SQL 命令获取这些环境变量的正确值的信息.