Ces fonctions contrôlent divers détails du comportement de libpq.
PQclientEncoding
Renvoie l'encodage client.
int PQclientEncoding(const PGconn *conn);
Notez qu'il renvoie l'identifiant d'encodage, pas une chaîne symbolique
telle que EUC_JP. Renvoie -1 en cas d'échec. Pour
convertir un identifiant d'encodage en nom, vous pouvez utiliser :
char *pg_encoding_to_char(int encoding_id);
PQsetClientEncoding
Configure l'encodage client.
int PQsetClientEncoding(PGconn *conn, const char *encoding);
conn est la connexion au serveur, et
encoding est l'encodage que vous voulez
utiliser. Si la fonction initialise l'encodage avec succès, elle
renvoie 0, sinon -1. L'encodage actuel de cette connexion peut être
déterminé en utilisant PQclientEncoding.
PQsetErrorVerbosity
Détermine la verbosité des messages renvoyés par
PQerrorMessage et PQresultErrorMessage.
typedef enum
{
PQERRORS_TERSE,
PQERRORS_DEFAULT,
PQERRORS_VERBOSE
} PGVerbosity;
PGVerbosity PQsetErrorVerbosity(PGconn *conn, PGVerbosity verbosity);
PQsetErrorVerbosity initialise le mode de verbosité, renvoyant le
paramétrage précédant de cette connexion. Dans le mode terse, les
messages renvoyés incluent seulement la sévérité, le texte principal et la
position ; ceci tiendra normalement sur une seule ligne. Le mode par
défaut produit des messages qui inclut ces champs ainsi que les champs détail,
astuce ou contexte (ils pourraient être sur plusieurs lignes). Le mode
VERBOSE inclut tous les champs disponibles. Modifier la verbosité
n'affecte pas les messages disponibles à partir d'objets
PGresult déjà existants, seulement ceux créés après
(mais voir PQresultVerboseErrorMessage si vous voulez
imprimer une erreur précédente avec une verbosité différente).
PQsetErrorContextVisibility
Détermine la gestion des champs CONTEXT dans les
messages renvoyées par PQerrorMessage et
PQresultErrorMessage.
typedef enum
{
PQSHOW_CONTEXT_NEVER,
PQSHOW_CONTEXT_ERRORS,
PQSHOW_CONTEXT_ALWAYS
} PGContextVisibility;
PGContextVisibility PQsetErrorContextVisibility(PGconn *conn, PGContextVisibility show_context);
PQsetErrorContextVisibility configure le mode
d'affichage du contexte, renvoyant la précédente configuration de la
connexion. Ce mode contrôle si le champ CONTEXT est
inclus dans les messages (sauf si la verbosité est configurée à
TERSE, auquel cas CONTEXT n'est
jamais affiché). Le mode NEVER n'inclut jamais
CONTEXT alors que ALWAYS l'inclut
en permanence s'il est disponible. Dans le mode par défaut,
ERRORS, les champs CONTEXT sont
inclus seulement pour les messages d'erreur, et non pas pour les messages
d'informations et d'avertissements. La modification de ce mode n'affecte
pas les messages disponibles à partir des objets
PGresult déjà existant, seulement ceux créés
après. (Cependant, voir PQresultVerboseErrorMessage
si vous voulez imprimer l'erreur précédent avec un mode d'affichage
différent.)
PQtraceActive les traces de communication entre client et serveur dans un flux fichier de débogage.
void PQtrace(PGconn *conn, FILE *stream);
Sur Windows, si la bibliothèque libpq et une application sont
compilées avec des options différentes, cet appel de fonction arrêtera
brutalement l'application car la représentation interne des pointeurs
FILE diffère. Spécifiquement, les options multi-threaded/single-threaded
release/debug et static/dynamic devraient être identiques pour la bibliothèque et les
applications qui l'utilisent.
PQuntrace
Désactive les traces commencées avec PQtrace.
void PQuntrace(PGconn *conn);