PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 12.22 » Interfaces client » libpq - Bibliothèque C » Fonctions de contrôle

33.10. Fonctions de contrôle

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'ID de l'encodage, pas une chaîne symbolique telle que EUC_JP. Renvoie -1 en cas d'échec. Pour convertir un ID 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 en cours pour 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,
           PQERRORS_SQLSTATE
       } 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 DEFAULT produit des messages qui incluent 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. Le mode SQLSTATE inclut seulement la sévérité de l'erreur et le code d'erreur SQLSTATE, s'il est disponible (dans le cas contraire, la sortie est identique au mode TERSE).

Modifier la verbosité n'affecte pas les messages disponibles à partir d'objets PGresult déjà existants, seulement ceux créés après. (Mais voyez PQresultVerboseErrorMessage si vous voulez afficher 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. 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. (However, if the verbosity setting is TERSE or SQLSTATE, CONTEXT fields are omitted regardless of the context display mode.)

La modification de ce mode n'affecte pas les messages disponibles à partir des objets PGresult déjà existants, seulement ceux créés après. (Cependant, voyez PQresultVerboseErrorMessage si vous voulez afficher une erreur précédente avec un mode d'affichage différent.)

PQtrace

Active la trace de la communication entre client et serveur vers un fichier de débogage.

void PQtrace(PGconn *conn, FILE *stream);
      

Note

Sur Windows, si la bibliothèque libpq et une application sont compilées avec des options différentes, cet appel de fonction fera planter 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);