IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

probleme pour inclure pg_type.h


Sujet :

PostgreSQL

  1. #1
    Membre habitué

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 421
    Points : 189
    Points
    189
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       #include "libpq-fe.h"
       #include "server\catalog\pg_type.h"
    mais j'ai alors cette erreur la

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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+++

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 937
    Points : 4 358
    Points
    4 358
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       #include "libpq-fe.h"
       #include "server\catalog\pg_type.h"
    mais j'ai alors cette erreur la

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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…

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 421
    Points : 189
    Points
    189
    Par défaut
    re,

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

    j'ai essayer avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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++

  4. #4
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 89
    Points : 83
    Points
    83
    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,

  5. #5
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 89
    Points : 83
    Points
    83
    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.

  6. #6
    Membre habitué

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 421
    Points : 189
    Points
    189
    Par défaut
    merci, je vais essayer tout cela et je vous dirais quoi

    a++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme pour inclure malib.h
    Par jlandrei dans le forum C
    Réponses: 1
    Dernier message: 02/03/2010, 15h19
  2. Probleme pour inclure une librairie
    Par tmanta7 dans le forum Qt
    Réponses: 2
    Dernier message: 26/05/2009, 15h58
  3. Probleme pour inclure list sous visual 2005
    Par Pierre_Moulon dans le forum Visual C++
    Réponses: 2
    Dernier message: 16/12/2006, 22h36
  4. Probleme pour inclure winbgi.lib et graphics.h
    Par stan314 dans le forum Windows
    Réponses: 5
    Dernier message: 26/09/2006, 23h02
  5. [JAR]Probleme pour inclure un jar dans une appli Web
    Par ouedmouss dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 09/12/2005, 09h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo