Difference between revisions of "locate/fr"

From Free Pascal wiki
Jump to navigationJump to search
m (Fixed syntax highlighting)
 
Line 2: Line 2:
  
 
=Définition=
 
=Définition=
 +
 
Unité: FreePascal, unité '''db'''
 
Unité: FreePascal, unité '''db'''
  
<syntaxhighlight>
+
<syntaxhighlight lang=pascal>
 
     function  Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions): Boolean; override;
 
     function  Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions): Boolean; override;
 
</syntaxhighlight>
 
</syntaxhighlight>
Line 11: Line 12:
  
 
=Description=
 
=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.
 
'''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.
  
Line 27: Line 29:
  
 
=Exemples=
 
=Exemples=
 +
 
Utilisation d'un DataSet TDBF en cherchant 'di Angelo', 'Di Angelo' etc. dans un champ appelé LASTNAME :
 
Utilisation d'un DataSet TDBF en cherchant 'di Angelo', 'Di Angelo' etc. dans un champ appelé LASTNAME :
<syntaxhighlight>
+
 
 +
<syntaxhighlight lang=pascal>
 
uses dbf, db
 
uses dbf, db
 
...
 
...
Line 39: Line 43:
  
 
NB : vous devez ajouter l'unité variant dans votre clause uses.
 
NB : vous devez ajouter l'unité variant dans votre clause uses.
<syntaxhighlight>
+
 
 +
<syntaxhighlight lang=pascal>
 
uses Variants;
 
uses Variants;
 
..
 
..
Line 54: Line 59:
  
 
=Voir aussi=
 
=Voir aussi=
* [http://delphi.about.com/od/database/l/aa052901a.htm] Description de comment utiliser locate avec Delphi.
+
 
<br/>
+
* [http://delphi.about.com/od/database/l/aa052901a.htm Description de comment utiliser locate avec Delphi].

Latest revision as of 03:08, 19 February 2020

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.
Light bulb  Remarque: Locate est seulement implémenté sur les DataSet non-unidirectionnels, i.e. vous devez pouvoir vous déplacer en arrière et vers l'avant du DataSet.
Light bulb  Remarque: Locate et lookup agissent à bas niveau dans le DataSet pour rechercher des enregistrements. Souvent, il est plus efficace de filtrer/limiter ce que l'on obtient dans le DataSet dès le départ i.e. en utilisant la clause SQL WHERE.

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;

Voir aussi