31.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
, а затрагивает только последующие сообщения.-
PQtrace
Включает трассировку клиент-серверного взаимодействия с выводом в поток отладочных сообщений.
void PQtrace(PGconn *conn, FILE *stream);
Примечание
В Windows, если библиотека libpq и приложение скомпилированы с разными флагами, эта функция может вызвать крах приложения из-за различий внутреннего представления указателей
FILE
. В частности, флаги многопоточной/однопоточной, выпускаемой/отладочной или статической/динамической сборки должны быть одинаковыми для библиотеки и всех использующих её приложений.-
PQuntrace
Выключает трассировку, запущенную функцией
PQtrace
.void PQuntrace(PGconn *conn);