W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
這些函數(shù)控制libpq行為各種各樣的細(xì)節(jié)。
PQclientEncoding
返回客戶端編碼。
int PQclientEncoding(const PGconn *conn
);
請注意,它返回的是編碼 ID,而不是一個符號串字符串,如EUC_JP
。如果不成功,它會返回 -1。要把一個編碼 ID 轉(zhuǎn)換為為一個編碼名稱,可以用:
char *pg_encoding_to_char(int encoding_id
);
PQsetClientEncoding
設(shè)置客戶端編碼。
int PQsetClientEncoding(PGconn *conn
, const char *encoding
);
conn
是一個到服務(wù)器的連接,而encoding
是你想使用的編碼。 如果函數(shù)成功地設(shè)置編碼,則返回 0,否則返回 -1。這個連接的當(dāng)前編碼可以使用PQclientEncoding
確定。
PQsetErrorVerbosity
決定PQerrorMessage
和 PQresultErrorMessage
返回的消息的細(xì)節(jié)程度。
typedef enum { PQERRORS_TERSE, PQERRORS_DEFAULT, PQERRORS_VERBOSE, PQERRORS_SQLSTATE } PGVerbosity; PGVerbosity PQsetErrorVerbosity(PGconn *conn, PGVerbosity verbosity);
PQsetErrorVerbosity
設(shè)置細(xì)節(jié)模式,并返回該連接的前一個設(shè)置。 在TERSE模式下,返回的消息只包括嚴(yán)重性、主要文本以及位置;這些東西通常放在一個單一行中。 DEFAULT模式生成的消息包括上面的信息加上任何細(xì)節(jié)、提示或者上下文域(這些可能跨越多行)。
VERBOSE模式包括所有可以可用的域。修改細(xì)節(jié)模式不會影響來自已有PGresult
對象中的可用消息。 只有隨后創(chuàng)建的PGresult
對象才受到影響。 SQLSTATE模式僅包括錯誤嚴(yán)重性和SQLSTATE
錯誤代碼,如果其中之一是可用的(如果沒有,輸出類似于
TERSE模式)。
更改詳細(xì)程度設(shè)置不會影響已存在的PGresult
對象的可用的消息,只會影響隨后創(chuàng)建的對象。 (如果想要用不同的詳細(xì)程度打印之前的錯誤,請見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
設(shè)置上下文顯示模式,返回該連接上之前的設(shè)置。 這個模式控制消息中是否包括CONTEXT
域。 NEVER模式不會包括
CONTEXT
,而ALWAYS則盡可能地包括這個域。 在ERRORS模式(默認(rèn))中,只在錯誤消息中包括CONTEXT
域,而在通知和警告消息中不會包括。 (但是,如果詳細(xì)程度設(shè)置為 TERSE 或SQLSTATE,則無論上下文顯示模式如何,都會省略
CONTEXT
字段。)
更改這個模式不會影響從已經(jīng)存在的PGresult
對象項中得到的消息,只會影響后續(xù)創(chuàng)建的PGresult
對象 (如果想要用不同的詳細(xì)程度打印之前的錯誤,請見PQresultVerboseErrorMessage
)。
PQtrace
啟用對客戶端/服務(wù)器通訊的跟蹤,把跟蹤信息輸出到一個調(diào)試文件流中。
void PQtrace(PGconn *conn, FILE *stream);
在 Windows上,如果libpq庫和應(yīng)用使用了不同的標(biāo)志編譯,那么這個函數(shù)調(diào)用會導(dǎo)致應(yīng)用崩潰,因為FILE
指針的內(nèi)部表達(dá)是不一樣的。特別是多線程/單線程、發(fā)布/調(diào)試 以及靜態(tài)/動態(tài)標(biāo)志應(yīng)該是庫和所有使用庫的應(yīng)用都一致。
PQuntrace
禁用PQtrace
打開的跟蹤。
void PQuntrace(PGconn *conn);
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: