Mysql ODBC connector et Composant BDE (Borland) [Résolu]

Signaler
Messages postés
2
Date d'inscription
jeudi 9 août 2007
Statut
Membre
Dernière intervention
4 février 2010
-
Messages postés
3
Date d'inscription
lundi 1 février 2010
Statut
Membre
Dernière intervention
27 février 2010
-
Bonjour,

J'utilise le composant BDE de c++ Builder 2007 et Mysql ODBC connector 5.1.6. J'utilise donc la propriété aliasName de la classe TQuery du composant BDE.

si je fais :
Query1->SQL->Add("select * from Table");
Query1->Open();
Query1->GetFieldNames(Liste);//retourne les noms des champs de la table

La connexion à la base de donnée se passe bien, par contre dans ma Liste je n'ai pas les champs de type 'varchar' ou 'text'(ils sont codés en UTF8).
Si je fais une requete sur un de ces champs, du genre 'select name from Table', il me retourne une erreur stipulant qu'il n'y a pas de champs Name dans Table. Alors qu'il existe bien dans ma Table ce champs !!!
Cependant une requete sur des champs d'autre type ne pose aucun problème.

Je précise également que je n'ai aucun souci avec le connecteur Microsoft SQL ODBC et la classe TQuery du composant BDE. En faisant la même chose sur une base MS SQL j'arrive bien à accéder a tous les champs des tables. Par contre toutes les bases de données MS SQL que j'ai testé n'étaient pas codées en UTF8.

Avez-vous déjà rencontré ce genre de difficultés ?? une idée du problème ??

4 réponses

Messages postés
3
Date d'inscription
lundi 1 février 2010
Statut
Membre
Dernière intervention
27 février 2010

J'ai trouvé une solution!!

Utiliser les composant VCL de la série TADO au lieu de TDB

Tels TADOConnection, TADOTable

Voir http://loicyon.free.fr/download/bcppb6p.pdf
Messages postés
3
Date d'inscription
lundi 1 février 2010
Statut
Membre
Dernière intervention
27 février 2010

Bonjour,

J'ai le même genre de problème un petit essai avec un composant TTable, TDatasource et TDBedit

Dans la "vue arborescente des objets" tous les champs de ma DB sont visibles

La connexion de TTable est parfaite et l'activation aussi

Mais quand je veux connecter mon TDBEdit à un champs de la table, la liste ne me propose que les champs non caractère. Ok pour int, date etc..

J'ai bien sûr essayé avec toutes les sortes de champs caractère et même en les définissant autrement que utf8 au moyen de phpmyadmin

Ca semble être un problème Borland car l'ouverture de cette DB par access (choix ODBC) ne pose pas ce problème

Ma DB est sur un serveur Debian et ma version de C++ Builder est BCB6


Une idée de solution ??

A+
Messages postés
2
Date d'inscription
jeudi 9 août 2007
Statut
Membre
Dernière intervention
4 février 2010

Merci goldenconti, et désolé de la réponse tardive.

Du coup j'suis passé par les dbExpress avec TSQLConnection et TSQLQuery et tout fonctionne bien...
Il doit y avoir un bug dans les composant BDE.
Messages postés
3
Date d'inscription
lundi 1 février 2010
Statut
Membre
Dernière intervention
27 février 2010

Je le pense aussi
A+