31.9. Control Functions 控制函数

这些函数控制许多libpq杂项行为的细节。

PQclientEncoding

Returns the client encoding. 返回客户端编码。

int PQclientEncoding(const PGconn *conn);

请注意,它返回编码ID,而不是一个符号串 如EUC_JP。转换编码的ID为一个你可以使用的编码名称,

char *pg_encoding_to_char(intencoding_id);

PQsetClientEncoding

Sets the client encoding. 设置客户端编码。

int PQsetClientEncoding(PGconn *conn,const char *encoding);

conn是一个到服务器的连接, encoding是你想要的编码 使用。如果函数成功设置编码,则返回0, 否则返回-1。当前编码可以就此 通过PQclientEncoding确定。

PQsetErrorVerbosity

决定PQerrorMessagePQresultErrorMessage返回的信息的冗余程度。

typedef enum
{
    PQERRORS_TERSE,
    PQERRORS_DEFAULT,
    PQERRORS_VERBOSE
} PGVerbosity;

PGVerbosity PQsetErrorVerbosity(PGconn *conn,PGVerbosity verbosity);

PQsetErrorVerbosity设置冗余模式,返回连接的前一个设置。在TERSE模式下, 返回的消息只包括严重性,主信息,以及位置信息;这些东西通常只有一行。 缺省模式生成的消息包括上面的信息加上任何细节,提示,或者环境字段(这些可能跨越几行)。 VERBOSE模式包括所有可以获得的字段。修改冗余模式不会影响我们能从已经存在 的PGresult对象中获取的信息,只有随后创建的PGresult对象才受到影响。

PQtrace

打开对前端/服务器通讯的跟踪,把调试信息输出到一个文件流里。

void PQtrace(PGconn *conn,FILE *stream);

Note: 注意: 在 Windows 里,如果libpq库和应用使用了不同的标志编译,那么这个函数调用会导致应用崩溃, 因为FILE的内部表现形式是不一样的。特别是多线程/单线程,发布/调试, 以及静态/动态标志应该是库和所有使用库的应用都一致。

PQuntrace

关闭PQtrace打开的跟踪。

void PQuntrace(PGconn *conn);