30.10. ФÑнкÑии ÑпÑавлениÑ
ÐÑи ÑÑнкÑии ÑпÑавлÑÑÑ ÑазлиÑнÑми аÑпекÑами Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ libpq.
-
PQclientEncoding ÐозвÑаÑÐ°ÐµÑ ÐºÐ¾Ð´Ð¸ÑÐ¾Ð²ÐºÑ ÐºÐ»Ð¸ÐµÐ½Ñа.
int PQclientEncoding(const PGconn *
conn);ÐамеÑÑÑе, ÑÑо она возвÑаÑÐ°ÐµÑ Ð¸Ð´ÐµÐ½ÑиÑикаÑÐ¾Ñ ÐºÐ¾Ð´Ð¸Ñовки, а не ÑимволÑнÑÑ ÑÑÑÐ¾ÐºÑ Ð²Ð¸Ð´Ð°
EUC_JP. Ð ÑлÑÑае оÑибки она возвÑаÑÐ°ÐµÑ -1. ÐÑеобÑазоваÑÑ Ð¸Ð´ÐµÐ½ÑиÑикаÑÐ¾Ñ ÐºÐ¾Ð´Ð¸Ñовки в Ð¸Ð¼Ñ Ð¼Ð¾Ð¶Ð½Ð¾, воÑполÑзовавÑиÑÑ ÑледÑÑÑей ÑÑнкÑией: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);