FireDAC.Comp.DataSet.TFDDataSet.Indexes
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 オブジェクトのコレクションで、それぞれ任意で定義します:
- フィールドによるソート(Fields、CaseInsFields、DescFields、Options)。
- 式によるソート(Expression、Options)。
- レコード フィルタ(Filter、FilterOptions)。
- レコード区別フラグ(Distinct)
個々のインデックスは、ソート定義やフィルタ定義のみではありません。FireDAC は、各アクティブ インデックスに対して、データ上に一定のビューを維持し、アプリケーションはデータをフェッチしたり、データを編集したりします。それは、さらなるオーバーヘッドを生じさせますが、これにより、インデックス間の切り替えを遅延なしで行うことができます。
ビューをカレントにするには、Selected プロパティを True に設定するか、データセットの IndexName プロパティをそのビューの名前にします。
メモ: ビューは、Active プロパティが True になっていなければなりません。
データセットは、IndexesActive が True の際に、Indexes ビューを保持します。アプリケーションは、データセットへのバッチ更新を実行する必要がある際、更新前に IndexesActive を False に設定し、更新後にもとの値に戻します。また、BeginBatch や EndBatch メソッドも参照してください。
IndexFieldNames の設定では、TFDIndex オブジェクトを Indexes コレクションに追加しません。データセットを開く前に IndexDefs を定義すると、Indexes をクリアし、それを IndexDefs の情報を使用して埋めます。2 つの代替手段があります: IndexDefs を使用するか、Indexes を使用する方法です。より柔軟なため、Indexes を使用する方を推奨します。
ナビゲーション メソッドによっては(Locate、LocateEx、Lookup、LookupEx、SetRange)、インデックスを使用して、それらのオペレーションを最適化することができます。
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';
関連項目
- レコードをソートする
- 式の作成
- FireDAC.Comp.DataSet.TFDDataSet.IndexDefs
- FireDAC.Comp.DataSet.TFDDataSet.IndexesActive
- FireDAC.Comp.DataSet.TFDDataSet.IndexFieldNames
- FireDAC.Comp.DataSet.TFDDataSet.IndexName
- FireDAC.Comp.DataSet.TFDDataSet.BeginBatch
- FireDAC.Comp.DataSet.TFDDataSet.EndBatch