Postgresql 中文操作指南
34.11. Control Functions #
这些函数控制 libpq 的行为的各种细节。
-
PQclientEncoding #
-
Returns the client encoding.
-
int PQclientEncoding(const PGconn *conn);
-
请注意,它返回编码 ID,而不是符号字符串,如 EUC_JP。如果不成功,它返回 -1。要将编码 ID 转换为编码名称,可以使用:
char *pg_encoding_to_char(int encoding_id);
-
PQsetClientEncoding #
-
Sets the client encoding.
-
int PQsetClientEncoding(PGconn *conn, const char *encoding);
-
conn 是与服务器的连接, encoding 是要使用的编码。如果该函数成功设置了编码,它将返回 0,否则返回 -1。可以使用 PQclientEncoding 来确定此连接的当前编码。
-
PQsetErrorVerbosity #
-
-
确定 PQerrorMessage 和 PQresultErrorMessage 返回的消息的详细程度。
typedef enum
{
PQERRORS_TERSE,
PQERRORS_DEFAULT,
PQERRORS_VERBOSE,
PQERRORS_SQLSTATE
} PGVerbosity;
PGVerbosity PQsetErrorVerbosity(PGconn *conn, PGVerbosity verbosity);
-
PQsetErrorVerbosity 设置详细模式,返回连接的先前设置。在 TERSE 模式下,返回的消息仅包括严重性、主文本和位置;这通常可以放在一行中。 DEFAULT 模式生成的消息包括上述内容以及任何详细、提示或上下文字段(这些字段可能跨越多行)。 VERBOSE 模式包含所有可用字段。 SQLSTATE 模式仅包含错误严重性和 SQLSTATE 错误代码(如果可用,如果没有,则输出类似于 TERSE 模式)。
-
更改详细设置不会影响可从已存在的 PGresult 对象获得的消息,只会影响随后创建的消息。(但如果你想以不同的详细程度打印以前错误,请参见 PQresultVerboseErrorMessage 。)
-
PQsetErrorContextVisibility #
-
-
确定 PQerrorMessage 和 PQresultErrorMessage 返回的消息中 CONTEXT 字段的处理方式。
typedef enum
{
PQSHOW_CONTEXT_NEVER,
PQSHOW_CONTEXT_ERRORS,
PQSHOW_CONTEXT_ALWAYS
} PGContextVisibility;
PGContextVisibility PQsetErrorContextVisibility(PGconn *conn, PGContextVisibility show_context);
-
PQsetErrorContextVisibility 设置上下文显示模式,返回连接的先前设置。此模式控制 CONTEXT 字段是否包含在消息中。 NEVER 模式从不包含 CONTEXT ,而 ALWAYS 模式在可用时始终包含它。在 ERRORS 模式(默认模式)下, CONTEXT 字段仅包含在错误消息中,不包含在通知和警告中。(但是,如果详细设置是 TERSE 或 SQLSTATE ,则 CONTEXT 字段将被省略,无论上下文显示模式如何。)
-
更改此模式不会影响可从已存在的 PGresult 对象获得的消息,只会影响随后创建的消息。(但如果你想以不同的显示模式打印以前错误,请参见 PQresultVerboseErrorMessage 。)
-
PQtrace #
-
-
启用客户端/服务器通信的跟踪到调试文件流。
void PQtrace(PGconn *conn, FILE *stream);
-
每一行都包含:可选时间戳、方向指示符(F 表示从客户端到服务器的消息或 B 表示从服务器到客户端的消息)、消息长度、消息类型和消息内容。非消息内容字段(时间戳、方向、长度和消息类型)由制表符分隔。消息内容由空格分隔。协议字符串用双引号括起来,而用作数据值的字符串用单引号括起来。不可打印字符以十六进制转义序列的形式打印。有关特定消息类型的更多详细信息,请参阅 Section 55.7。
-
PQsetTraceFlags #
-
-
控制客户端/服务器通信的跟踪行为。
void PQsetTraceFlags(PGconn *conn, int flags);
void PQuntrace(PGconn *conn);