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 :
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 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(); }
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 :
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; }
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).
Partager