インデックス情報の取得
インデックス付きレコードのソート への移動
アプリケーションでは、テーブル タイプのすべてのデータセットから、サーバー定義のインデックスに関する情報を取得できます。データセットの使用可能なインデックスのリストを取得するには、GetIndexNames メソッドを呼び出します。GetIndexNames では、有効なインデックス名の一覧を文字列リストで返します。たとえば、次のコードでは、CustomersTable データセットに定義されているすべてのインデックスの名前をリスト ボックスに設定しています。
CustomersTable.GetIndexNames(ListBox1.Items);
CustomersTable->GetIndexNames(ListBox1->Items);
メモ: Paradox テーブルの場合、主インデックスは名前がないので、GetIndexNames では返されません。ただし、IndexName プロパティに空白文字列を設定することにより、代替インデックスの使用後でも、Paradox テーブル上のインデックスを主インデックスに戻すことができます。
現在のインデックスのフィールドに関する情報を得るには、以下を使用します。
- IndexFieldCount プロパティ -- インデックスの列数を指定します。
- IndexFields プロパティ -- インデックスを構成する列のフィールド コンポーネントのリストが格納されます。
次のコードでは、アプリケーションで IndexFieldCount プロパティと IndexFields プロパティを使用して列名のリストを反復処理する方法の例を示しています。
var I: Integer; ListOfIndexFields: array[0 to 20} of string; begin with CustomersTable do begin for I := 0 to IndexFieldCount - 1 do ListOfIndexFields[I] := IndexFields[I].FieldName; end; end;
AnsiString ListOfIndexFields[20]; for (int i = 0; i < CustomersTable->IndexFieldCount; i++) ListOfIndexFields[i] = CustomersTable->IndexFields[i]->FieldName;
メモ: IndexFieldCount は、式インデックスで開かれている dBASE テーブルの場合は無効です。
関連項目
- IndexName を使ったインデックスの指定
- IndexFieldNames を使ったインデックスの作成
- Data.Win.ADODB.TADODataSet.GetIndexNames
- Data.Win.ADODB.TADOTable.GetIndexNames
- Datasnap.DBClient.TCustomClientDataSet.GetIndexNames
- Bde.DBTables.TTable.GetIndexNames
- IBX.IBTable.TIBTable.GetIndexNames
- Data.SqlExpr.TSQLConnection.GetIndexNames
- Data.SqlExpr.TSQLTable.GetIndexNames