FireDAC.Comp.DataSet.TFDDataSet.Locate

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

function Locate(const AKeyFields: string; const AKeyValues: Variant;  AOptions: TLocateOptions = []): Boolean; override;

C++

virtual bool __fastcall Locate(const System::UnicodeString AKeyFields, const System::Variant &AKeyValues, Data::Db::TLocateOptions AOptions = Data::Db::TLocateOptions() );

Propriétés

Type Visibilité  Source Unité  Parent
function public
FireDAC.Comp.DataSet.pas
FireDAC.Comp.DataSet.hpp
FireDAC.Comp.DataSet TFDDataSet


Description

Recherche dans l'ensemble de données un enregistrement particulier ayant les valeurs spécifiées et en fait l'enregistrement en cours.

Utilisez Locate pour rechercher dans l'ensemble de données un enregistrement particulier ayant les valeurs spécifiées et en faire l'enregistrement en cours.

AKeyFields est une liste de noms de champs séparés par des points-virgules dans laquelle votre recherche doit être effectuée.  

AKeyValues est un Variant contenant les valeurs à mettre en correspondance avec les champs clés. Si AKeyFields contient un nom de champ unique, AKeyValues est une valeur simple. Si AKeyFields contient plusieurs noms de champs, AKeyValues est un tableau de variants dans lequel les éléments correspondent aux champs clés. 

AOptions est un ensemble de modes de recherche pour les champs chaîne. Si AOptions contient la valeur loCaseInsensitive, Locate ignore la casse lors de la mise en correspondance des champs. Si AOptions contient la valeur loPartialKey, le paramètre AKeyValues peut contenir une chaîne incomplète. 

Si un enregistrement correspondant est trouvé, le premier enregistrement devient l'enregistrement en cours et Locate renvoie True

Pour optimiser la recherche d'enregistrements, l'application peut définir un index client. L'index est utilisé par Locate lorsque toutes les conditions suivantes sont réunies :

  • La liste des champs d'index utilise en préfixe les champs AKeyFields.
  • Lorsque l'index est construit avec l'option soNoCase, AOptions inclut loCaseInsensitive. Si l'index est construit sans soNoCase, AOptions n'inclut pas loCaseInsensitive.
  • L'index est actif et à jour.

Exemple

CustTable.IndexFieldNames := 'ID';
if CustTable.Locate('ID', 1001, []) then
  CustTable.Delete
else
  ShowMessage('The customer with ID=1001 is not found');

Voir aussi