FireDAC.Comp.DataSet.TFDDataSet.Indexes

De Appmethod Libraries
Aller à : navigation, rechercher

Object Pascal

property Indexes: TFDIndexes read FIndexes write SetIndexes stored IsIS;

C++

__property TFDIndexes* Indexes = {read=FIndexes, write=SetIndexes, stored=IsIS};

Propriétés

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

Description

Liste tous les index client s'appliquant à l'ensemble de données.

Utilisez Indexes pour définir des vues de données côté client sur les enregistrements de l'ensemble de données. Indexes est une collection d'objets TFDIndex, chacun d'eux définissant facultativement :

Les index individuels ne sont pas seulement les définitions de tri et de filtre. FireDAC maintient une vue cohérente des données de chaque index actif, pendant que l'application récupère ou modifie les données. Cette opération crée une surcharge supplémentaire, mais permet de basculer entre les index sans délai d'attente.

Pour qu'une vue devienne la vue en cours, définissez sa propriété Selected sur True ou la propriété IndexName de l'ensemble de données sur le nom de la vue.

Remarque : La vue doit avoir sa propriété Active définie sur True pour être maintenue.

L'ensemble de données maintient les vues Indexes quand IndexesActive est défini sur True. Quand une application a besoin d'effectuer des mises à jour groupées sur l'ensemble de données, définissez IndexesActive sur False avant la mise à jour, puis revenez à la valeur d'origine après la mise à jour. Vous pouvez aussi voir les méthodes BeginBatch et EndBatch.

La définition de IndexFieldNames n'ajoute pas un objet TFDIndex à la collection Indexes. La définition de IndexDefs avant l'ouverture de l'ensemble de données efface Indexes et remplit les index avec les informations IndexDefs. Ainsi, il existe deux façons de procéder : utiliser IndexDefs ou utiliser Indexes. Nous vous suggérons d'utiliser Indexes, car cette opération est plus flexible.

Certaines méthodes de navigation, telles que Locate, LocateEx, Lookup, LookupEx, SetRange, utilisent des index pour optimiser leurs opérations.

Les expressions de tri et de filtre de Indexes supportent la syntaxe étendue des expressions.

Exemple

 with FDMemTable1.Indexes.Add do begin
   Name := 'by_name';
   Fields := 'NAME;DT';
   Active := True;
 end;
 with FDMemTable1.Indexes.Add do begin
   Name := 'by_payments';
   Expression := 'sum(sal + bonus)';
   Filter := 'dep_id is not null;
   Active := True;
 end;
 FDMemTable1.IndexesActive := True;
 FDMemTable1.IndexName := 'by_name';

Voir aussi