Recherche mutli-critaires en delphi5

Signaler
Messages postés
1
Date d'inscription
dimanche 1 janvier 2012
Statut
Membre
Dernière intervention
6 janvier 2012
-
Messages postés
106
Date d'inscription
mardi 13 novembre 2007
Statut
Membre
Dernière intervention
25 octobre 2020
-
salut tout le monde;
j'ai une base de donnée(dbf)qui contient plus de 200 000 enregistrement, je voudrais:
1- Faire une recherche sur 02 champs et plus (nom,prenom,...)
2-Le code qui fait l'indexation sur plusieurs champs

3 réponses

Messages postés
106
Date d'inscription
mardi 13 novembre 2007
Statut
Membre
Dernière intervention
25 octobre 2020
2
Bonjour,
Avec une table DBF il te faut obligatoirement créer un index secondaire sur les champs nom et prenom.
Ensuite la méthode LOCATE(Const KeyFields: string; const KeyValues: variant; Options: [TLocateOptions]): Boolean devrait faire l'affaire.
Pour la recherche sur les 2 champs il faut fournir les critères (KeyValues) dans un tableau de type Variant.
Les Options sont loCaseInsensitive, La case n'est pas prise en compte et
loPartialKey recherche sur une partie de l'argument passé
If not table1.Locate('Nom;Prenom',VarOfArray('Yassine','1970'), []) then
ShowMessage('Pas trouvé');
Avec SetKey et GotoKey ça marche aussi.
With Table1 do begin
Setkey;
FieldByName('Nom').AsString := nom;
FieldByName('prenom').AsString := prenom;
GotoKey;
end;
A voir aussi les méthodes LookUp et FindKey suivant ce que tu veux faire.
Ne pas oublier l'aide de Delhi Touche F1

pierrot
Messages postés
4719
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
1 février 2021
14
Bonjour,

attention..

If not table1.Locate('Nom;Prenom',VarOfArray(['Yassine','1970']), []) then


cantador
Messages postés
106
Date d'inscription
mardi 13 novembre 2007
Statut
Membre
Dernière intervention
25 octobre 2020
2
Bonjour,
Quand on donne une info encore faut il qu'elle soit exacte.merci d'avoir corrigé mon oubli de crochets.
pierrot