tleboukaka
26Messages postés
14 octobre 2007Date d'inscription
21 févr. 2008 à 20:37
salut
voici comment tu dois proceder :
c'était pourtant important de bien definir ton architecture, pour nous permettre de bien résoudre ton problème. je part de l'idée que codFiliere est un champs de la table Etudiant. je suppose que les champs de la table Etudiant sont : num etudiant, nom etudiant, code filiere, etc
sur ton form :
place un composant TDBlookUpComboBox, et selectionne le en cliquant dessus
dans inspecteur d'objet, applique ces proprietés :
NAME : dlcCodFiliere
LIST SOURCE : dataSourceEtudiant (le dataSource de la table Etudiant)
LIST FIELD : cod_Filiere (ou Nom filiere)
KEY FIELD : cod_Filiere
ensuite
tu place un tButton (exemple bouton OK / EXECUTER)
en bas tu place un TDBGrid (c'est là que va s'afficher le contenu de ta requete une fois que tu clique sur le bouton OK)
tu va paramettrer maintenant ton Query
Selectionne le depuis l'Arbre d'Objet, clique sur son signe +, clique droit sur Param. clik encore sur AJOUTER ARTICLE du menu contextuel
dans inspecteur objet : renseigne DATA TYPE avec ftString
renseigne aussi NAME en tapant ParamCodFiliere
tu peu sauvegarder...
ensuite
evenement On Clic de ton bouton, tu ecrit le sql de ta requete du genre :
...
begin
query1.SQL.Clear;
query1.SQL.Add ('SELECT TblEleve.elvNum, tbleleve.ElvNom, tblEleve.CodFiliere, ... ');
query1.SQL.Add ('FROM ...');
query1.SQL.Add ('INNER JOIN .... ON... ');
query1.SQL.Add ('WHERE (codFiliere = :ParamCodFiliere) ');
query1.SQL.Add ('ORDER BY ... ');
query1.ParamByName ('ParamCodFiliere').AsString:=dlcCodFiliere.Text;
query1.Open;
end;
...
enfin, tu dois parametrer ton TDBGrid
selectionne ton dbGrid
dans Inspecteur Objet, renseigne son dataSource. il correspond au datasource de la requete query1
voilà, celà DEVAIT marcher sans problème
90% de mes requetes sont parametrées, voir même des parametres sur 3 niveaux et ça marche comme cela
bon courage
Eric