FireDAC.Comp.DataSet.TFDDataSet.Indexes

提供: RAD Studio API Documentation
移動先: 案内検索

Delphi

property Indexes: TFDIndexes read FIndexes write SetIndexes stored IsIS;

C++

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

プロパティ

種類 可視性 ソース ユニット
property public
FireDAC.Comp.DataSet.pas
FireDAC.Comp.DataSet.hpp
FireDAC.Comp.DataSet TFDDataSet


説明

データセットに適用されるすべてのクライアント インデックスをリストにします。

Indexes を使用すると、データセット レコードに、クライアント側のデータ ビューを定義することができます。Indexes は、TFDIndex オブジェクトのコレクションで、それぞれ任意で定義します:

個々のインデックスは、ソート定義やフィルタ定義のみではありません。FireDAC は、各アクティブ インデックスに対して、データ上に一定のビューを維持し、アプリケーションはデータをフェッチしたり、データを編集したりします。それは、さらなるオーバーヘッドを生じさせますが、これにより、インデックス間の切り替えを遅延なしで行うことができます。 

ビューをカレントにするには、Selected プロパティを True に設定するか、データセットの IndexName プロパティをそのビューの名前にします。

メモ: ビューは、Active プロパティが True になっていなければなりません。

データセットは、IndexesActiveTrue の際に、Indexes ビューを保持します。アプリケーションは、データセットへのバッチ更新を実行する必要がある際、更新前に IndexesActiveFalse に設定し、更新後にもとの値に戻します。また、BeginBatchEndBatch メソッドも参照してください。 

IndexFieldNames の設定では、TFDIndex オブジェクトを Indexes コレクションに追加しません。データセットを開く前に IndexDefs を定義すると、Indexes をクリアし、それを IndexDefs の情報を使用して埋めます。2 つの代替手段があります: IndexDefs を使用するか、Indexes を使用する方法です。より柔軟なため、Indexes を使用する方を推奨します。 

ナビゲーション メソッドによっては(LocateLocateExLookupLookupExSetRange)、インデックスを使用して、それらのオペレーションを最適化することができます。 

Indexes におけるソート式またはフィルタ式は、拡張式構文をサポートしています。

例:

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';

関連項目

サンプル