Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 Re : C et C++ » PSQL Select bigint from a database // C » 12/03/2010 13:24:31
En effet quand j'affiche le contenu directement j'ai 0 aussi alors que mes autres champs (char) s'affiche bien, donc ce n'est pas ma clause (condition) WHERE qui est en cause non plus.
Par contre avec un simple PQExec cela me renvois bien le bon chiffre... Bizar je pensais que la seule difference entre PQExec et PQExecParams etait le fait de passer des parametres.
#2 Re : C et C++ » PSQL Select bigint from a database // C » 12/03/2010 13:01:44
Merci pour la reponse !
Mais justement mon probleme vient de la, si PQGetvalue renvois un char* alors que ma valeur stockee est un BIGINT, comment le recuperrer par la suite en int, long ou double ?!?
Car le atol me renvois 0 par exemple.
Dois-je faire une conversion avec la librairie psql ?
Merci encore,
Sismon
#3 C et C++ » PSQL Select bigint from a database // C » 12/03/2010 11:42:25
- Sismon
- Réponses : 6
Bonjour a tous,
Je rencontre actuellement un leger probleme quand je veux faire une requete SQL pour un bigint, pour les char, aucun soucis mais les bigint ne passe pas ....
Voila le code que j'utilise, url etant un char (ca fonctionne bien), mais avec EPOCHtime qui est un bigint, je n'arrive pas a recuperrer sa valeur....
int nFields;
int i, j;
char *url;
PGresult *res;
res = PQexecParams(conn,"SELECT EPOCHtime,url FROM master WHERE service = $1",1 ,NULL ,Service ,NULL ,NULL ,1);
nFields = PQnfields(res);
if ((PQntuples(res)) > 0)
{
printf("\n%i reccord found for %s",PQntuples(res), Service[0]);
for (i = 0; i < PQntuples(res); i++)
{
for (j = 0; j < nFields; j++)
{
if (j==0)
{
timeout = long(PQgetvalue(res,i,j);
}
printf("\nSending : %-15s", PQgetvalue(res, i, j));
url=PQgetvalue(res,0,0);
}
}
}
Comment recuperrer cette valeur qui n'est pas un char a l'origine ?
Toute aide, conseil ou meme un ptit lien vers quelque chose que j'aurai raté est la bienvenue,
Merci d'avance,
Sismon
Pages : 1