FireDAC.Comp.DataSet.TFDDataSet.LookupEx

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

function LookupEx(const AKeyFields: string; const AKeyValues: Variant;
const AResultFields: string; AOptions: TFDDataSetLocateOptions = [];
ApRecordIndex: PInteger = nil): Variant; overload; virtual;
function LookupEx(const AExpression, AResultFields: string;
AOptions: TFDDataSetLocateOptions = []; ApRecordIndex: PInteger = nil): Variant; overload; virtual;

C++

virtual System::Variant __fastcall LookupEx(const System::UnicodeString AKeyFields, const System::Variant &AKeyValues, const System::UnicodeString AResultFields, TFDDataSetLocateOptions AOptions = TFDDataSetLocateOptions() , System::PInteger ApRecordIndex = (System::PInteger)(0x0))/* overload */;
virtual System::Variant __fastcall LookupEx(const System::UnicodeString AExpression, const System::UnicodeString AResultFields, TFDDataSetLocateOptions AOptions = TFDDataSetLocateOptions() , System::PInteger ApRecordIndex = (System::PInteger)(0x0))/* overload */;

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 ensemble de valeurs de champs clés spécifiées ou une expression prédicat pour un enregistrement et renvoie les valeurs de champs obtenues.

Cette méthode est surchargée :

  • Utilisez la première méthode surchargée LookupEx pour rechercher dans un ensemble de données un enregistrement avec des valeurs de champs spécifiées. AKeyFields est une liste de noms de champs séparés par des points-virgules dans laquelle rechercher. 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.
  • Utilisez la seconde méthode surchargée LookupEx pour rechercher dans un ensemble de données un enregistrement dans lequel l'expression prédicat spécifiée est évaluée à True. AExpression est une chaîne contenant l'expression prédicat dans laquelle rechercher. L'expression ne peut pas contenir de fonctions d'agrégation comme SUM, COUNT, et elle est évaluée comme étant True ou False. FireDAC supporte la syntaxe étendue des expressions.

Si un enregistrement correspondant est trouvé, LookupEx renvoie un tableau de variants contenant les valeurs de champs spécifiées dans AResultFields. Sinon, elle renvoie null. La variable pointée par ApRecordIndex reçoit l'index de l'enregistrement trouvé si ApRecordIndex n'est pas nil.

Pour optimiser la recherche d'enregistrements, l'application peut configurer l'index client. Cet index sera utilisé par LookupEx 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.

AOptions est un ensemble qui spécifie éventuellement des modes de recherche supplémentaires :

Option

Description
lxoCaseInsensitive

Lorsque cette option est incluse, LookupEx ignore les majuscules/minuscules lors de la mise en correspondance des valeurs chaîne.

lxoPartialKey

Lorsque cette option est incluse, AKeyValues peut spécifier des chaînes incomplètes pour la comparaison des chaînes.

lxoFromCurrent

Lorsque cette option est incluse, LookupEx commence la recherche à partir de l'enregistrement suivant dans l'ensemble de données. Sinon, elle commence la recherche à partir du début.

lxoBackward

Lorsque cette option est incluse, LocateEx recherche l'enregistrement vers l'arrière. Sinon, elle recherche vers l'avant.

lxoCheckOnly

Lorsque cette option est incluse, LookupEx n'effectue pas les opérations suivantes :
  • Terminer le mode modification, le cas échéant.

lxoNoFetchAll

Lorsque cette option est incluse, FetchAll n'est pas appelée. La recherche est donc effectuée dans les enregistrements déjà extraits.

Exemple

procedure TForm1.Button1Click(Sender: TObject);  var    V: Variant;    C: Integer;    A: String;  begin    V := FDQuery1.LookupEx('Company = ''Blue Sports'' and State = ''OR''', 'CustNo;Addr1', [lxoCaseInsensitive]);    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