locate/fr
│
English (en) │
français (fr) │
Définition
Unité: FreePascal, unité db
function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions): Boolean; override;
Documentation officielle : Aucune.
Description
locate recherche un enregistrement dans le DataSet où correspondent les valeurs recherchées spécifiées avec les champs spécifiés. Si trouvé, la fonction retourne True et la position du curseur/l'enregistrement courant se déplace sur cet enregistrement.
KeyFields peut être un simple nom de champ ou une liste de noms de champ séparés par des points-virgules.
KeyValue peut être un variant ou un tableau de variants et le nombre des articles doit correspondre avec le nombre de champs spécifiés dans KeyFields, la correspondance est ordinale.
Les options de recherche peuvent être :
- loCaseInsensitive : ignore la distinction majuscules/minuscules lors de la recherche.
- loPartialKey : Correspond à des recherches partielles (au lieu de la clé complète). Remarque : Ceci fonctionne uniquement pour les champs de type chaîne, non pour les nombres/dates/monétaires etc, l'option est ignorée sur ces champs.
Exemples
Utilisation d'un DataSet TDBF en cherchant 'di Angelo', 'Di Angelo' etc. dans un champ appelé LASTNAME :
uses dbf, db
...
if MyDBF.Locate('LASTNAME','di Angelo',[loCaseInsensitive])then
writeln('Found record.');
Utilisation de champs multiples pour trouver un enregistrement.
NB : vous devez ajouter l'unité variant dans votre clause uses.
uses Variants;
..
procedure LocateMyRecord;
var
aCityID, aCountryID: integer;
begin
if Locate('city_id;country_id', VarArrayOf([aCityID, aCountryID]), []) then
begin
DoSomething;
end;
end;