↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

不受支持的版本: 7.2 / 7.1 / 7.0 / 6.5
历史版本PostgreSQL 7.0 已于 2005 年 5 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本手册首页。

第 54 章 libpq - C++ 绑定库

libpq++ 是 Postgres 的 C++ API。 libpq++ 是一组允许客户端程序连接到 Postgres 后端服务器的类。这些连接有两种形式:数据库类和大对象类。

数据库类用于操作数据库。你可以向 Postgres 后端服务器发送各种 SQL 查询并获取服务器的响应。

大对象类用于操作数据库中的大对象。虽然大对象实例可以向 Postgres 后端服务器发送普通查询, 但它只适用于不返回任何数据的简单查询。应当把大对象看作一个文件流。将来它应当表现得非常像 C++ 文件流 cin、cout 和 cerr。

本章基于 libpq C 库的文档。本节末尾列出了三个短程序作为 libpq++ 编程的示例(但不一定是良好编程的示例)。 源代码发行版的 src/libpq++/examples 中有若干 libpq++ 应用的示例,包括本章三个示例的源代码。

54.1. 控制与初始化

54.1.1. 环境变量

下列环境变量可用于为环境设置默认值,避免把数据库名硬编码到应用程序中:

注意

完整的可用连接选项列表见libpq - C 库。

下列环境变量可用于选择默认的连接参数值, 如果调用代码没有直接指定值,PQconnectdb 或 PQsetdbLogin 将使用它们。这些变量有助于避免在简单的应用程序中硬编码数据库名。

注意

libpq++ 只使用环境变量或 PQconnectdb conninfo 风格字符串。

  • PGHOST 设置默认的服务器名。 如果指定了非零长度的字符串,则使用 TCP/IP 通信。 如果没有主机名,libpq 将使用本地 Unix 域套接字连接。

  • PGPORT 设置与 Postgres 后端通信的默认端口或本地 Unix 域套接字文件扩展名。

  • PGDATABASE 设置默认的 Postgres 数据库名。

  • PGUSER 设置用于连接数据库和进行认证的用户名。

  • PGPASSWORD 设置在后端要求密码认证时使用的密码。

  • PGREALM 设置与 Postgres 一起使用的 Kerberos 域(如果它与本地域不同)。如果设置了 PGREALM,Postgres 应用将尝试向该域的服务器认证,并使用单独的票据文件以避免与本地票据文件冲突。只有在后端选择了 Kerberos 认证时才会使用此环境变量。

  • PGOPTIONS 为 Postgres 后端设置额外的运行时选项。

  • PGTTY 设置显示来自后端服务器的调试消息的文件或 tty。

下列环境变量可用于为每个 Postgres 会话指定用户级的默认行为:

  • PGDATESTYLE 设置日期/时间表示的默认风格。

  • PGTZ 设置默认时区。

下列环境变量可用于为每个 Postgres 会话指定默认的内部行为:

  • PGGEQO 设置遗传优化器的默认模式。

关于这些环境变量的正确取值,请参阅 SQL 命令 SET。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。