Requete SQL "dynamique" [Résolu]

Messages postés
13
Date d'inscription
mercredi 8 mars 2006
Dernière intervention
26 avril 2006
- - Dernière réponse : f0xi
Messages postés
4307
Date d'inscription
samedi 16 octobre 2004
Dernière intervention
2 janvier 2019
- 14 avril 2006 à 16:10
Bonjour,

Je vais vous expliquer mon problème.
Un exemple fictif:

Dans une Form, il y a un combobox relié à une base A (avec comme champ Clio, Laguna, Safrane, etc...)

Ensuite, au cours de ce programme j'ai une requete SQL qui fait appel à une table DBLaguna ou DBSafrane,ou...

Mon problème est de dire dans ma requete quand il doit aller chercher tel table ou tel table.

Par exemple, j'ai renseigné un truc du style:

zz := concat('DB',combobox.items(combobox1.itemindex));

puis dans ma requete SQL:
SELECT * FROM zz ......

mais il me dit que la table zz n'existe pas....(ce qui est logique et pourtant)
donc je ne sais pas comment renseigner ma requete en fonction du choix fait en début de programme...

Auriez vous une idée????
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
314
Date d'inscription
dimanche 31 octobre 2004
Dernière intervention
31 décembre 2006
2
3
Merci
Salut,
C'est normal si tu écris ta requête comme cela en delphi car ta varible zz n'est pas interprété. Il suffirait de faire :
requete := concat('SELECT * FROM ', zz)
ensuiite tu execute requete sur ta table.
Bon courage.

N'oubliez pas de cliquer sur réponse acceptée si la réponse vous convient !!!

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 123 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_sim51
Messages postés
4307
Date d'inscription
samedi 16 octobre 2004
Dernière intervention
2 janvier 2019
34
0
Merci
non non non, ne surtout pas utiliser la fonction Concat qui degrade les performances comme c'est pas permis...

requette := 'SELECT * FROM DB'+ComboBox.Text+'...';

et de plus ce n'est pas : ComboBox.Items(ComboBox.ItemIndex);
mais : ComboBox.Items[ComboBox.ItemIndex];

bien sur la propriété Text de ComboBox prend la valeur de l'item selectioné. donc lire ComboBox.Text plutot qu'autre chose.
Commenter la réponse de f0xi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.