API:FireDAC.Phys.MongoDBDataSet.TFDMongoDataSet.Indexes
Delphi
property Indexes: TFDIndexes read FIndexes write SetIndexes stored IsIS;
C++
__property Indexes;
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
property | published | FireDAC.Phys.MongoDBDataSet.pas FireDAC.Phys.MongoDBDataSet.hpp |
FireDAC.Phys.MongoDBDataSet | TFDMongoDataSet |
説明
データセットに適用されるすべてのクライアント インデックスのリストです。
FireDAC.Phys.MongoDBDataSet.TFDMongoDataSet.Indexes は FireDAC.Comp.DataSet.TFDDataSet.Indexes を継承しています。以下の内容はすべて FireDAC.Comp.DataSet.TFDDataSet.Indexes を参照しています。
データセットに適用されるすべてのクライアント インデックスのリストです。
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';