Requete SQL appelant plusieurs tables

xelah Messages postés 13 Date d'inscription mercredi 8 mars 2006 Statut Membre Dernière intervention 26 avril 2006 - 5 avril 2006 à 10:08
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 - 6 avril 2006 à 21:22
Bonjour, je suis néophyte et je ne comprend pas tout ici!

J'explique le problème. J'ai 3 tables (paradox) avec entre eux un seul champ commun "ID_Nom".
Lorsque je clique sur cet ID_Nom dans un combobox, je fais une requete SQL qui me permet d'afficher dans des edit et listbox ce que j'ai dans mes tables. Le hic c'est que les champs ID_Nom de chaque table change (il passe en ID_Nom_1 et ID_Nom_2).
Qu'à cela ne tienne, je continue en essayant:
(rappel: zo := combobox1.Items[combobox1.ItemIndex];)

Query1.SQL.add('select * from table1,table2,table3);
Query1.SQL.add ('where (ID_Nom =: zo)');
Query1.SQL.add('And (ID_Nom1=ID_Nom2)');
Query1.SQL.add('And (ID_Nom2=ID_Nom)');
while jx<Query1.RecordCount do
begin
Edit1.Text := inttostr(Query1Periode.Value);
Edit2.Text := inttostr(Query1Nb_Km.Value);
Edit3.Text := Datetostr(Query1Date.Value);
Edit4.Text := FloatTostr(Query1Cout1.Value);
Edit5.Text := FloatTostr(Query1Cout2.Value);
ListBox1.Items.Add(Query1Nom_Pas.value ) ;
jx:=jx+1;
Query1.moveby(1);
end;

Mais cela ne marche pas, pouvez vous m'aider pliz!

3 réponses

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
5 avril 2006 à 23:48
Avant d'entrer dans la boucle while, il faudrait penser à demander l'exécution de la requête !...

May Delphi be with you !

<HR color=#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
0
xelah Messages postés 13 Date d'inscription mercredi 8 mars 2006 Statut Membre Dernière intervention 26 avril 2006
6 avril 2006 à 10:17
merk j'ai oublié mais c'est surtout la requete SQL qui m'importe en fait..... tu as une idée???
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
6 avril 2006 à 21:22
J'ai oublié de t'indiquer que tu n'avais pas substitué le paramètre variable (:z0) avant l'ouverture de la requête.

Pour clarifier ta requête, tu devrais utiliser les alias :
SELECT *
FROM Table1 T1, Table2 T2, Table3 T3
WHERE
T1.Id_Nom = :zo
AND
T2.ID_Nom1 = T3.ID_Nom2
AND
T3.ID_Nom2= T1.ID_Nom


J'ai un peu placé les alias au hasard, ne connaissant pas la structure de tes tables.
Malgré cela, je suis un peu perplexe sur le sens de ta requête.

May Delphi be with you !

<HR color=#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
0
Rejoignez-nous