Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/04/2007, 15h06   #1
Membre à l'essai
 
Inscription : février 2007
Messages : 91
Détails du profil
Informations personnelles :
Âge : 46

Informations forums :
Inscription : février 2007
Messages : 91
Points : 23
Points : 23
Par défaut libpq - recuperation de cle

J'utilise la "library" libpq afin d'accéder à une base de donnée PosgreSQL à partir d'un programme en C.

Mon soucis est de récupérer une clé primaire à l'aide de la fonction
PQgetvalue(). Cela fonctionne très bien pour tout ce qui est stocké au format texte mais cela ne fonctionne pas du tout pour récupérer une clé. Comment faire?
Exemple:

res =PQexec("SELECT * FROM \"ma_table\" WHERE toto = 5");
printf("la clé: %i\n", PQgetvalue(res,0,0));


Je devrais obtenir '2' or j'obtiens une valeur du style '2560262'
Rocou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2007, 15h23   #2
Membre à l'essai
 
Inscription : février 2007
Messages : 91
Détails du profil
Informations personnelles :
Âge : 46

Informations forums :
Inscription : février 2007
Messages : 91
Points : 23
Points : 23
cela n'a pas l'air de passionner les foules

Néanmoins, je m'auto-réponds après une bonne journée de recherches.
le bout de code:

int field_type;
int *int_val;

res = PQexecParams(...);

field_type =PQftype(res,0);
int_val = (int *) PQgetvalue(res, 0, 0);
printf("int_val: %i\n",*int_val);

Et voilà. Pour se servir de int_val comme paramètre d'un PQexecParams, il faut d'abord le convertir en chaîne. (sprintf() ou itoa())
Rocou est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h06.


 
 
 
 
Partenaires

Hébergement Web