Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search for
  Advanced Search

Re: Postgres status



Alain a écrit :
Bonsoir,

Merci pour la réponse.

On Tue, 13 Nov 2007 16:38:25 +0100
François Figarola <francois(dot)figarola(at)i-consult(dot)fr> wrote:

Vous pouvez interroger et naviguer dans les sources de postgresql ici :
http://doxygen.postgresql.org/

La fonction est définie :
ExecStatusType PQresultStatus (const PGresult * res)
Definition at line 2023 of file fe-exec.c.

et l'énumération ExecStatusType  :

enum ExecStatusType
Enumerator:
0 PGRES_EMPTY_QUERY 1 PGRES_COMMAND_OK 2 PGRES_TUPLES_OK 3 PGRES_COPY_OUT 4 PGRES_COPY_IN 5 PGRES_BAD_RESPONSE 6 PGRES_NONFATAL_ERROR 7 PGRES_FATAL_ERROR

Si les valeurs indiquées en col. 1 sont ce qui est renvoyé par la fonction, ça me conviendrait assez. Quant a libpq-fe.h, j'ignore les valeurs numériques correspondant aux différents cas, donc je vais essayer d'utiliser ExecStatusType.
PQresultStatus renvoie effectivement une valeur du type ExecStatusType déclarée comme étant une énumération, dans la quelle la première valeur déclarée vaut 0 (PGRES_EMPTY_QUERY=0), les autres s'incrémentant au fur
et à mesure des déclarations.
Donc, effectivement, les chiffres que j'ai mis en colonne de gauche correspondent à la valeur de retour de cette
fonction si on la "cast" en entier.
De plus, la déclaration de cette énumération dans libpq-fe.h, comporte nombre de commentaires qui explicitent
chacune de ces valeurs.

Je pense qu'une assez bonne pratique serait d'utiliser l'instruction switch du C pour tester ces résultats :

switch (PQresultStatus(res))
{
   case PGRES_EMPTY_QUERY : /* une requête vide a été exécutée */
         ... traitement ...
         break;
case PGRES_COMMAND_OK : /* une requête ne retournant rien a correctement été exécutée */
         ... traitement ...
         break;
case PGRES_TUPLES_OK : /* la requête a été correctement exécutée et la structure PGResult *res contient des tuples */
         ... traitement ...
         break
   case ...
   /* etc, pour l'ensemble de l'énumération */
}
Je ne suis pas très doué en C, et ça risque de prendre un certain temps !
C'est en forgeant ...
;-))
Que faites vous comme job ? Internet Consult laisse supposer beaucoup de choses :
Developpement/optimisation de sites internet.
Avez-vous un site internet ?

Cordialement,
Cordialement.

François Figarola.

--
INTERNET CONSULT
Mas Guerido
6 rue Aristide Bergès
66330 CABESTANY

Tel   04.68.66.09.29
fax   04.68.66.99.50
* francois(dot)figarola(at)i-consult(dot)fr




Home | Main Index | Thread Index

Privacy Policy | PostgreSQL Archives hosted by Command Prompt, Inc. | Designed by tinysofa
Copyright © 1996 – 2008 PostgreSQL Global Development Group