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/06/2008, 12h03   #1
Membre habitué
 
Inscription : avril 2004
Messages : 421
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 421
Points : 120
Points : 120
Par défaut probleme pour inclure pg_type.h

bonjour,

j'utilise libpq.lib (pour utiliser pgsql via le c) et j'aimerais savori quelle est le type que je recuperere.

pour l'instant, je le hardcode via

Code :
1
2
3
INT8OID         = 20;
      INT2OID         = 21;
      INT2VECTOROID   = 22;
mais j'ai appris qu'il existe un fichier pg_type.h qui le fait deja.

j'ai donc rajouter dans l'include
Code :
1
2
   #include "libpq-fe.h"
   #include "server\catalog\pg_type.h"
mais j'ai alors cette erreur la

Code :
1
2
 
C:\Program Files\PostgreSQL\8.3\include\server\catalog\pg_type.h(22) : fatal error C1083: Cannot open include file: 'nodes/nodes.h': No such file OR directory
qqn aurait t il une idée??
merci

PS: j'ai bien evidemment essayer avec seulement libpq-fe.h comme include, mais cela ne marche pas non plus


a+++
elekis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2008, 14h25   #2
Expert Confirmé
 
Homme
Inscription : septembre 2006
Messages : 2 293
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2006
Messages : 2 293
Points : 2 741
Points : 2 741
Citation:
Envoyé par elekis Voir le message
bonjour,

j'utilise libpq.lib (pour utiliser pgsql via le c) et j'aimerais savori quelle est le type que je recuperere.

pour l'instant, je le hardcode via

Code :
1
2
3
INT8OID         = 20;
      INT2OID         = 21;
      INT2VECTOROID   = 22;
mais j'ai appris qu'il existe un fichier pg_type.h qui le fait deja.

j'ai donc rajouter dans l'include
Code :
1
2
   #include "libpq-fe.h"
   #include "server\catalog\pg_type.h"
mais j'ai alors cette erreur la

Code :
1
2
 
C:\Program Files\PostgreSQL\8.3\include\server\catalog\pg_type.h(22) : fatal error C1083: Cannot open include file: 'nodes/nodes.h': No such file OR directory
qqn aurait t il une idée??
merci

PS: j'ai bien evidemment essayer avec seulement libpq-fe.h comme include, mais cela ne marche pas non plus


a+++
pg_types.h … ?

ça dépend aussi de la version de postgresql que vous avez installé…
sur celle que j'ai sous la main il y a des

pgtypes_XXX.h
(date, error, interval, numeric, timestamp)

mais plus de pgtypes.h…
JeitEmgie est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2008, 07h25   #3
Membre habitué
 
Inscription : avril 2004
Messages : 421
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 421
Points : 120
Points : 120
re,

desoler pour le temps de réponse, mais j'étais sur autre chose.

j'ai essayer avec

Code :
1
2
3
4
 
   #include "pgtypes_numeric.h"
   #include "pgtypes_timestamp.h"
   #include "pgtypes_date.h"
mais cela ne change pas grand chose.

mnt, il y a un truc dont je ne susi pas sur. tout les constantes que j'utilise tel que INTID, INT2OID,et... se termine toute par OID . est ce normal???

Si je me souviens bien, OID ce sont les blob non? moi ce que je veux c'est lorsque je lis une valeur venant de la base de donné, est ce un text, un chiffre, etc...etc...

bref, est ce que je fait bien cela comme il faut.

PS: j'ai une 8.3, et j'ai les deux types de fichiers, pgtyupes_*** et pgtypes.h

merci


a++
elekis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2008, 16h54   #4
Membre du Club
 
Inscription : avril 2008
Messages : 89
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 89
Points : 58
Points : 58
Par défaut Est-ce bien cela...

Bonjour,

j'ai utilisé libpq pour faire des petits executables clients C en relation avec ma base.

Grossièrement, j'ai compilé libpq avec mon compilo, je link mon appli avec libpq.dll et j'inclues "libpq-fe.h" uniquement (pas pg_type).

J'ai des requêtes du type :

result=PQexec(connection, "SELECT count(*) FROM communes");
printf(PQgetvalue(result,0,0));

donc il faut que je sache combien d'éléments me renvoie ma requête et leurs types pour les caster (initialement j'ai une chaine de caractère) affichée ici directement par printf...

Est-ce bien quelque chose du genre que vous cherchez à faire ?

Sinon concernant le message d'erreur du compilo lors de l'include de pg_type.h il est normal car il y a une arborescence dans les headers de postgre. Il vous faut donc rajouter comme option du compilo le répertoire d'include racine qui doit être Postgre\...\include\...\server\ j'imagines.

Dès lors le #include nodes\nodes.h qui doit être quelque part dans votre fichier pg_types.h pourra être résolu je pense...

N'hésitez pas à donner quelques précisions... Qu'entendez vous par je le hardocre via .... Et où placez vous le code suivant ?
INT8oID = 20;
INT2OID = 21;
INT2VECTOROID = 22;

Cordialement,
VASAPANCH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2008, 17h01   #5
Membre du Club
 
Inscription : avril 2008
Messages : 89
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 89
Points : 58
Points : 58
Par défaut Note

En relisant le post initial, normalement si vous rajouter dans les répertoires d'include le path suivant :

C:\Program Files\PostgreSQL\8.3\include\server\

alors cela lévera le problème d'include de nodes.h....

Si vous êtes sous Win32 ajoutez C:\Program Files\PostgreSQL\8.3\include\server\port\win32 au cas où....

En fait je suis en train de développer des fonctions C sous postgre et je trifouille pas mal les headers de include\server ... normalement avec ces 2 répertoires tout est bon !

Bon WE.
VASAPANCH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2008, 09h51   #6
Membre habitué
 
Inscription : avril 2004
Messages : 421
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 421
Points : 120
Points : 120
merci, je vais essayer tout cela et je vous dirais quoi

a++
elekis 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 20h53.


 
 
 
 
Partenaires

Hébergement Web