lnicos
Messages postés67Date d'inscriptionlundi 4 mars 2002StatutMembreDernière intervention 4 octobre 2005
-
7 déc. 2002 à 18:44
padsou
Messages postés121Date d'inscriptionjeudi 24 janvier 2002StatutMembreDernière intervention13 avril 2010
-
9 déc. 2002 à 16:33
Voilà je m'explique,
j'aimerais effectuer une recherche dans ma base de donnée, en fonction du nom, prénom (par exemple) présent dans des "edits". J'aimerais que le resultat s'affiche ds un DBGRid ou autre, et que bien sur seul les résultats bons soient affichés.
Parce que g utilisé pour le moment la fonction locate mais elle ne fait que pointer le resultat. Moi se quej'aimerais c avoir tous les résultats ds un DBGrid par exmple
cs_Nono40
Messages postés962Date d'inscriptionmercredi 3 avril 2002StatutMembreDernière intervention12 septembre 20062 7 déc. 2002 à 20:48
Alors il faut faire une requète SQL avec les conditions données par les TEdit, c'est la méthode la plus générale. Car ensuite il suffit de lier le DBGrid au résultat de la requète via un DataSource.
Tu peux aussi utiliser la propriété Filter de certains composants, mais tout n'est pas forcement faisable avec Filter.
--- :sleepy) Nono40@fr.st :sleepy) ---
Nouveau ---> Nono40.fr.st
lnicos
Messages postés67Date d'inscriptionlundi 4 mars 2002StatutMembreDernière intervention 4 octobre 2005 8 déc. 2002 à 09:13
tu pourrais sans voiloir abuser, me faire un piti exemple stp.
Ce que je cherche à faire, c'est de pouvoir trier mes contacts par exemple en faisant une recherche du type: contact dont le nom commence par Dup* et dont l'âge est supérieur à20. tu vois ? tu pourrais me montrer comment faire ô grand nono ;-p
cs_Nono40
Messages postés962Date d'inscriptionmercredi 3 avril 2002StatutMembreDernière intervention12 septembre 20062 8 déc. 2002 à 19:09
Je ne sais pas quels composants tu utilises, mais il faut faire une requète du genre :
SELECT * FROM MATABLE
WHERE ( NOM LIKE "Dup%" ) AND ( AGE > 20 )
--- :sleepy) Nono40@fr.st :sleepy) ---
Nouveau ---> Nono40.fr.st
Vous n’avez pas trouvé la réponse que vous recherchez ?
padsou
Messages postés121Date d'inscriptionjeudi 24 janvier 2002StatutMembreDernière intervention13 avril 2010 9 déc. 2002 à 09:43
Il faut inclure dans ta requete les params :
Pour les utiliser, dans ton sql tu dois mettre par exemple :
Select * from Clients where nomcli =: paramnom and prenomcli =: paramprenom etc...
Tu affectes ensuite les params et faisant :
MaQueryClients.Params[0].AsString := Edit1.text;
MaQueryClients.Params[1].AsString := Edit2.text;
Tu actives la query et tu fais comme a dit nono pour la lier au dbgrid.
padsou
Messages postés121Date d'inscriptionjeudi 24 janvier 2002StatutMembreDernière intervention13 avril 2010 9 déc. 2002 à 13:42
C'est déjà un exmple ce que j'ai posté mais si cela n'est pas suffisant tu peux aller voir sur www.lescours.fr.st pour tout ce qui se rapporte à Delphi. C'est des cours de mon ancien prof ;) ...
Sinon sur quoi as tu besoin de plus d'explications ?
padsou
Messages postés121Date d'inscriptionjeudi 24 janvier 2002StatutMembreDernière intervention13 avril 2010 9 déc. 2002 à 16:33
Alors procédons dans l'ordre :
1 - Tu crées un datamodule
2 - Tu mets un composant "database" que tu trouves dans l'onglet "Accès BD"
3 - Tu mets un composant "Query" avec les propriétés qui vont bien (Database).
4 - Tu mets ton Sql dans la propriété Sql de la Query : Select * from Clients Where nomclient=:mon_param_nom_client and prenomclient=:mon_param_prenom_client;
5 - Maintenant, si tu vas voir dans la propriété "Params" de ta Query, tu vas t'apercevoir que les 2 params ont été créé (magique, non?)
6 - Tu crées un "datasource" qui se trouve dans "Accès BD" et tu fais pointer la Query sur ce Datasource.
7 - Mets ensuite un DbGrid (onglet "Contrôle BD") sur ta fiche et lie le à la Datasource créée précédemment.
8 - Mets 2 édits et un bouton sur ta fiche.
9 - Dans le code du bouton tu mets :
MaQueryClient.Active := False;
MaQueryClient.Params[0].AsString := Edit1.text;
MaQueryClient.Params[1].AsString := Edit2.text;
MaQueryClient.Active := True;
N'hésite pas à reposter un message si tu as un problème. 8-)