Requete SQL "dynamique" [Résolu]

xelah 13 Messages postés mercredi 8 mars 2006Date d'inscription 26 avril 2006 Dernière intervention - 13 avril 2006 à 11:08 - Dernière réponse : f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention
- 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

cs_sim51 314 Messages postés dimanche 31 octobre 2004Date d'inscription 31 décembre 2006 Dernière intervention - 13 avril 2006 à 11:47
+3
Utile
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 !!!
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_sim51
f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 14 avril 2006 à 16:10
0
Utile
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.