32.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, PQERRORS_SQLSTATE } PGVerbosity; PGVerbosity PQsetErrorVerbosity(PGconn *conn, PGVerbosity verbosity);PQsetErrorVerbosityÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ñежим деÑализаÑии и возвÑаÑÐ°ÐµÑ Ð¿ÑедÑдÑÑее знаÑение Ð´Ð»Ñ ÑоединениÑ. Р«лакониÑном» Ñежиме (TERSE) возвÑаÑаемÑе ÑообÑÐµÐ½Ð¸Ñ ÑодеÑÐ¶Ð°Ñ ÑолÑко ÑÑÐ¾Ð²ÐµÐ½Ñ Ð²Ð°Ð¶Ð½Ð¾ÑÑи, оÑновной ÑекÑÑ Ð¸ позиÑиÑ; вÑÑ ÑÑо обÑÑно ÑмеÑаеÑÑÑ Ð² одной ÑÑÑоке. Ð Ñежиме по ÑмолÑÐ°Ð½Ð¸Ñ (DEFAULT) вÑдаваемÑе ÑообÑÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑно ÑодеÑÐ¶Ð°Ñ Ð¿Ð¾Ð»Ñ Ð¿Ð¾Ð´Ñобного опиÑаниÑ, подÑказки или конÑекÑÑа (они могÑÑ Ð·Ð°Ð½Ð¸Ð¼Ð°ÑÑ Ð½ÐµÑколÑко ÑÑÑок). Р«многоÑловном» Ñежиме (VERBOSE) пеÑедаÑÑÑÑ Ð²Ñе доÑÑÑпнÑе Ð¿Ð¾Ð»Ñ ÑообÑениÑ. Ð Ñежиме SQLSTATE вÑдаÑÑÑÑ ÑолÑко ÑÑÐ¾Ð²ÐµÐ½Ñ Ð²Ð°Ð¶Ð½Ð¾ÑÑи и код оÑибкиSQLSTATE, еÑли он имееÑÑÑ (еÑли же его неÑ, вÑводиÑÑÑ Ñа же инÑоÑмаÑиÑ, ÑÑо и в Ñежиме TERSE).Ðзменение ÑÑÐ¾Ð²Ð½Ñ Ð´ÐµÑализаÑии не влиÑÐµÑ Ð½Ð° ÑообÑениÑ, Ñже ÑÑоÑмиÑованнÑе в ÑÑÑеÑÑвÑÑÑÐ¸Ñ Ð¾Ð±ÑекÑаÑ
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вклÑÑаÑÑÑÑ Ð² ÑообÑениÑ. Ð Ñежиме NEVER полеCONTEXTне вклÑÑаеÑÑÑ Ð½Ð¸ÐºÐ¾Ð³Ð´Ð°, а в Ñежиме ALWAYS вклÑÑаеÑÑÑ Ð²Ñегда, пÑи налиÑии. Ð Ñежиме ERRORS (по ÑмолÑаниÑ) полеCONTEXTвклÑÑаеÑÑÑ ÑолÑко в ÑообÑÐµÐ½Ð¸Ñ Ð¾Ð± оÑÐ¸Ð±ÐºÐ°Ñ , но не в замеÑÐ°Ð½Ð¸Ñ Ð¸ пÑедÑпÑеждениÑ. (Ðднако пÑи ÑÑовне деÑализаÑии TERSE или SQLSTATE полеCONTEXTопÑÑкаеÑÑÑ Ð²Ð½Ðµ завиÑимоÑÑи Ð¾Ñ Ñежима вÑвода конÑекÑÑа.)Смена ÑÑого Ñежима не влиÑÐµÑ Ð½Ð° ÑообÑениÑ, Ñже ÑÑоÑмиÑованнÑе в ÑÑÑеÑÑвÑÑÑÐ¸Ñ Ð¾Ð±ÑекÑаÑ
PGresult, а заÑÑÐ°Ð³Ð¸Ð²Ð°ÐµÑ ÑолÑко поÑледÑÑÑие ÑообÑениÑ. (Ðо можно воÑполÑзоваÑÑÑÑPQresultVerboseErrorMessage, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ Ð¿ÑедÑдÑÑÑÑ Ð¾ÑÐ¸Ð±ÐºÑ Ð² дÑÑгом Ñежиме вÑвода.)-
PQtrace ÐклÑÑÐ°ÐµÑ ÑÑаÑÑиÑÐ¾Ð²ÐºÑ ÐºÐ»Ð¸ÐµÐ½Ñ-ÑеÑвеÑного взаимодейÑÑÐ²Ð¸Ñ Ñ Ð²Ñводом в поÑок оÑладоÑнÑÑ ÑообÑений.
void PQtrace(PGconn *conn, FILE *stream);
ÐÑимеÑание
Ð Windows, еÑли библиоÑека libpq и пÑиложение ÑкомпилиÑÐ¾Ð²Ð°Ð½Ñ Ñ ÑазнÑми Ñлагами, ÑÑа ÑÑнкÑÐ¸Ñ Ð¼Ð¾Ð¶ÐµÑ Ð²ÑзваÑÑ ÐºÑÐ°Ñ Ð¿ÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¸Ð·-за ÑазлиÑий внÑÑÑеннего пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑказаÑелей
FILE. Ð ÑаÑÑноÑÑи, Ñлаги многопоÑоÑной/однопоÑоÑной, вÑпÑÑкаемой/оÑладоÑной или ÑÑаÑиÑеÑкой/динамиÑеÑкой ÑбоÑки Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ñми Ð´Ð»Ñ Ð±Ð¸Ð±Ð»Ð¸Ð¾Ñеки и вÑÐµÑ Ð¸ÑполÑзÑÑÑÐ¸Ñ ÐµÑ Ð¿Ñиложений.-
PQuntrace ÐÑклÑÑÐ°ÐµÑ ÑÑаÑÑиÑовкÑ, запÑÑеннÑÑ ÑÑнкÑией
PQtrace.void PQuntrace(PGconn *conn);