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).