pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
这些函数控制 libpq 行为的各种细节。
PQclientEncoding #返回客户端编码。
int PQclientEncoding(const PGconn *conn);
注意,返回的是编码 ID,而不是 EUC_JP 这样的符号字符串。失败时返回 -1。要将编码 ID 转换为编码名称,可以使用:
char *pg_encoding_to_char(int encoding_id);
PQsetClientEncoding #设置客户端编码。
int PQsetClientEncoding(PGconn *conn, const char *encoding);
conn是到服务器的连接,而encoding是要使用的编码。如果成功设置编码,函数返回 0,否则返回 -1。此连接的当前编码可以通过以下函数确定:PQclientEncoding。
PQsetErrorVerbosity #设置以下函数所返回消息的详细程度:PQerrorMessage和PQresultErrorMessage。
typedef enum
{
PQERRORS_TERSE,
PQERRORS_DEFAULT,
PQERRORS_VERBOSE
} PGVerbosity;
PGVerbosity PQsetErrorVerbosity(PGconn *conn, PGVerbosity verbosity);
PQsetErrorVerbosity设置详细程度模式,并返回该连接先前的设置。在TERSE模式下,返回的消息只包括严重性、主要文本和位置,通常一行就能容纳。默认模式生成的消息除上述字段外,还包括详细信息、提示或上下文字段(这些内容可能跨越多行)。VERBOSE模式包括所有可用字段。改变详细程度不会影响已有PGresult对象中的消息,只影响随后创建的对象。(如果要以不同的详细程度打印先前的错误,请参见PQresultVerboseErrorMessage。)
PQsetErrorContextVisibility #确定对CONTEXT字段的处理方式,这些字段位于以下函数返回的消息中:PQerrorMessage和PQresultErrorMessage。
typedef enum
{
PQSHOW_CONTEXT_NEVER,
PQSHOW_CONTEXT_ERRORS,
PQSHOW_CONTEXT_ALWAYS
} PGContextVisibility;
PGContextVisibility PQsetErrorContextVisibility(PGconn *conn, PGContextVisibility show_context);
PQsetErrorContextVisibility设置上下文显示模式,并返回连接的先前设置。此模式控制消息中是否包含CONTEXT字段(除非详细程度设置为TERSE,此时CONTEXT始终不会显示)。NEVER模式从不包含CONTEXT,而ALWAYS在该字段可用时总是包含它。在ERRORS模式(默认)下,CONTEXT字段只包含在错误消息中,不包含在通知和警告中。改变此模式不会影响已有PGresult对象中的消息,只影响随后创建的对象。(如果要以不同的显示模式打印先前的错误,请参见PQresultVerboseErrorMessage。)
PQtrace #启用客户端/服务器通信跟踪,将跟踪信息写入调试文件流。
void PQtrace(PGconn *conn, FILE *stream);
在 Windows 上,如果 libpq 库与应用程序使用不同的标志编译,调用此函数会导致应用程序崩溃,因为 FILE 指针的内部表示不同。具体而言,库与所有使用它的应用程序都应使用相同的多线程/单线程、发布/调试和静态/动态标志。
PQuntrace #禁用由 PQtrace 启动的跟踪。
void PQuntrace(PGconn *conn);
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。