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