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

C++Builder Discussion :

Soucis Postgresql et Query


Sujet :

C++Builder

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 3
    Par défaut Soucis Postgresql et Query
    j'ai un soucis avec Postgresql pour recupérer des données textes.

    Pour l'ouverture de session et database, qui se fait sans soucis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    void TDataRegistre::OpenDatabase ( TDatabase *Database, int Base, AnsiString DatabaseName, TSession *Session, AnsiString SessionName)
    {
     Database->AliasName=DSNListe[Variante]->Strings[Base];
     
     if (SessionName!=NULL)	Database->SessionName=SessionName;
     
     Database->DatabaseName=DatabaseName;
     
     Database->Params->Add(usern_postgres);
     Database->Params->Add(passw_postgres);
     
     Database->LoginPrompt=false;
     
     if (SessionName!=NULL) Session->OpenDatabase(DatabaseName);
     else Database->Open();
    }
    Et le problème vient du TQuery :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    bool TDataRegistre::SELECT ( TQuery *Query, int Variante, int Base, AnsiString DatabaseName, AnsiString SessionName, AnsiString &Query_Str, int Limit)
    {
     if (DatabaseName==NULL)
     { SessionName="Session"+Variante;
        DatabaseName="Base"+Variante;
     }
     
     AnsiString QuerySELECT_Str;
     QuerySELECT_Str ="SELECT ";	
     QuerySELECT_Str+=Query_Str;
     if (Limit>0)
     { QuerySELECT_Str+=" LIMIT ";
        QuerySELECT_Str+=Limit;
     }
     
     if (SessionName!=NULL) Query->SessionName=SessionName;
     
     Query->DatabaseName=DatabaseName;
     Query->Close();
     Query->SQL->Clear();
     Query->SQL->Add(QuerySELECT_Str);
     Query->Open();
     
     return true;
    }
    Tout fonctionne bien quand dans ma requette SQL il n'y a que des variables ou des dates, mais dès que j'essaye de récupérer un texte, j'ai un plantage :

    Quand je n'ai qu'un texte a récupérer dans ma requette SQL, le plantage ce fait lors de la demande :
    AnsiString mon_texte=QueryTable->FieldValues["mon_texte"].operator AnsiString();
    A noter que la variable QueryTable->FieldCount, m'indique que FieldValues["mon_texte"] n'existe pas.

    Et quand je demande a récupérer plus d'une variable texte, le plantage ce fait dès l'appel :Query->Open();

    Quelqu'un a une idée ?

    A noter que la meme requete SQL faite en php sur ma base postgres fonctionne très bien.
    De meme le code c++ ecrit ici, fonctionne très bien sur une base access (avec deux trois modifs pour l'adapter à access).

  2. #2
    say
    say est déconnecté
    Membre Expert
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Par défaut
    Bonjour,
    par expérience, les champs TEXT sont pas vraiment bien gérer entre BCB et PGSQL..
    as tu essayer ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AnsiString mon_texte=QueryTable->FieldByName["mon_texte"]->ToString;
    le problème c'est quand même que le format AnsiString et le format TEXT sont pas forcèment compatible.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 3
    Par défaut
    Merci Say,

    Helas ce n'était pas cela.

    J'ai tout essayé et rien n'y fait.

    Je passe desormais mon code par ADO et ça fonctione.

  4. #4
    Membre émérite
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Février 2004
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Février 2004
    Messages : 644
    Par défaut
    Pourquoi n'utilises-tu tout simplement pas TSQLQuery & DBExpress ???

    Aucuns problèmes d'utilisation avec une base de données ayant des centaines de tables contenant plusieurs types divers.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 31/01/2015, 19h50
  2. Souci avec la structure du SQL dans un Query
    Par Heremion dans le forum Bases de données
    Réponses: 6
    Dernier message: 12/11/2014, 19h04
  3. Réponses: 2
    Dernier message: 02/02/2012, 11h49
  4. [PostgreSQL 8.3.6] Soucis avec les données enregistrées
    Par flet le kid dans le forum Débuter
    Réponses: 3
    Dernier message: 22/04/2009, 08h24
  5. Gros soucis avec pgaccess et postgresql
    Par Missvan dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 13/04/2004, 16h16

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