Erreur Access Violation : API mySQL et Builder 6
Bonjour :D
Je dois, pour un TP, développer un application sous Builder(6) utilisant l'api mySQL.
Dans celui-ci, je dois à un moment lister les tables d'une base de donnée dans une ListBox. Selon le choix de l'utilisateur, le système affichera dans une deuxième ListBox la liste des champs (leurs noms) correspondant à la sélection.
Pour faire simple :
ListBox1 = nom des tables
ListBox2 = nom des champs de la table sélectionnée (par double-clic)
Le soucis viens de la récupération des noms des champs. Lors du double-clic, le programme plante en affichant le message d'erreur suivant :
Citation:
Violation d'accès à l'adresse xxxxxx dans le module 'rtl60.bpl'. Lecture de l'adresse yyyyyy
Je vous met le morceau de code générant l'erreur ci-dessous :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| AnsiString selection = ListBox1->Items->Strings[ListBox1->ItemIndex];
AnsiString requete = "SELECT * FROM ";
requete += selection;
char* requeteChar = requete.c_str();
if(!mysql_query(mySQL, requeteChar))
{
myRES = mysql_store_result(mySQL);
if(myRES)
{
compteur = mysql_num_fields(myRES);
myFIELDS = mysql_fetch_fields(myRES);
for(int i=0 ; i<compteur ; i++)
{
resultat = myFIELDS[i].name; // ligne générant l'erreur
ListBox2->Items->Add(resultat);
}
}
} |
J'ai tout essayé : cast pour voir si ça venait du type, conversion char*->AnsiString... rien n'y fait.
Merci d'avance ;)