FireDAC.Comp.DataSet.TFDDataSet.Lookup

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

function Lookup(const AKeyFields: string; const AKeyValues: Variant;
const AResultFields: string): Variant; override;

C++

virtual System::Variant __fastcall Lookup(const System::UnicodeString AKeyFields, const System::Variant &AKeyValues, const System::UnicodeString AResultFields);

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 avec les valeurs de champs clés spécifiées et renvoie les valeurs de champ obtenues.

Utilisez Lookup pour rechercher dans l'ensemble de données un enregistrement avec les valeurs de champs clés spécifiées et renvoyer les valeurs de champs obtenues sans modifier la position en cours dans l'ensemble de données.

AKeyFields est une liste de noms de champs séparés par des points-virgules dans laquelle effectuer la recherche. AKeyValues est un variant contenant les valeurs à mettre en correspondance avec les champs clés. Si AKeyFields contient un seul nom de champ, 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. AResultFields est une liste de noms de champs séparés par des points-virgules dont les valeurs sont renvoyées. Si l'enregistrement est trouvé, Lookup renvoie un tableau de variants contenant les valeurs de champs spécifiées dans AResultFields. Sinon, elle renvoie nil.

Pour optimiser la recherche d'enregistrements, une application peut configurer un index client. Cet index sera utilisé par Lookup si les conditions suivantes sont satisfaites :

  • La liste des champs de l'index a comme préfixe les champs AKeyFields.
  • L'index est construit sans l'option soNoCase.
  • L'index est actif et en cours.

Exemple

procedure TForm1.Button1Click(Sender: TObject);  var    V: Variant;    C: Integer;    A: String;  begin    V := FDQuery1.Lookup('Company;State', VarArrayOf(['Blue Sports', 'OR']), 'CustNo;Addr1');    if not VarIsNull(V) then begin      C := V[0];      A := V[1];      ShowMessage(IntToStr(C) + #13#10 + A);    end    else      ShowMessage('The record is not found !');  end;

Voir aussi