Question de spécialistes? [Résolu]

Signaler
Messages postés
197
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
17 décembre 2014
-
Messages postés
197
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
17 décembre 2014
-
Bonjour,



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
 




J’utilise une application qui repose sous MySQL via DbExpress (avec D7).



 




Pour assurer un lien biredirectionnel entre la base MySQL et mon appli, j’utilise les composants suivants :



-          SQLDataSet



-          DataSetProvider



-          ClientDataSet



-          DataSource



 




A noter que j'ai fait ceci en suivant ce tutoriel : http://jmcarayon.developpez.com/dbexpress/



 




Mon souci c’est que ma base contient plusieurs tables et que, via cette méthode, je suis obligé semble t'il d’avoir autant de composants ci-dessus que de tables.



 




Ce qui m’entraine alors autant de connexions à la base que j’ai de tables (Exemple pour 8 tables, je me retrouve avec 8 connexions à la base !).



 




Avez-vous une idée pour résoudre cette problématique ?



 




Merci par avance pour vos conseils.

4 réponses

Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
plusieurs Table ou plusieurs Base ?

car pour acceder aux tables il te suffit de le preciser dans tes requettes :

SELECT * FROM table1 ...
SELECT * FROM table2 ...

<hr size="2" width="100%" />
Messages postés
197
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
17 décembre 2014

J'ai une seule base qui contient une dizaine de tables.

Pour attaquer mes tables j'utilise pour chaque table un SQLDataSet, DataSetProvider, ClientDataSet et un DataSource.

SELECT * FROM table1 ...
SELECT * FROM table2 ...
Il faut que je mettte ça dans le SQLDateSet durant l'execution de l'appli c'est ça ?

Autres questions, de quatres composants que j'utilise lequel créé une connexion à la base ?
Messages postés
96
Date d'inscription
mercredi 25 octobre 2006
Statut
Membre
Dernière intervention
26 octobre 2009
3
Salut,

tu as besoin de 8 tables mais d'une seule connexion que tu réutilises.

Alex
Messages postés
197
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
17 décembre 2014

Bonjour et merci pour vos orientations,

Depuis, j'ai résolu le probléme de la maniére suivante pour chaque table (il me faut autant de clientdataset) mais qu'un seul SqlQuery (et donc qu'une seule connexion à la base) :

Form2.ClientDataSet1.Active:=False;
Form2.SQLQuery1.SQL.Clear;
Form2.SQLQuery1.SQL.Add('select * from table order by Champ);
Form2.SQLQuery1.ExecSQL(true);
Form2.ClientDataSet1.Active:=True;

Si ça peux aider ce qui ce sont poser les mêmes questions que moi...

En tous cas merci à tous.