|
VAccess
DdfPath と TableName によって特定される現在のテーブルの、インデックスに関する情報を含むバリアント配列を取得または設定します。
IndexList プロパティは、2 次元バリアント配列をカプセル化するバリアントを受け付けます。あるいはそのバリアントを返します。最初の添字はインデックス セグメントの 1 つのプロパティを参照し、2 番目の添字はインデックス セグメントの序数を参照します。最初の添字が参照するプロパティは次のとおりです。
インデックス属性は物理データ ファイルとも関連付けられています。このプロパティの設定によって、辞書のインデックスを定義することはできますが、物理データ ファイル内のインデックス属性は変更されません。既存データ ファイルのインデックス属性は、DdfAddIndex メソッド、DdfDropIndex メソッド、DdfDropIndexMaintain メソッドを使用して変更することができます。
RefreshLocations が True に設定されている場合は、IndexList を読み取ると、VAccess は DDF ファイルを再読み取りし、DDF に保存されているフィールド情報を取得します。RefreshLocations を True に設定して IndexList を変更しても、すべての変更が即時に DDF ファイル自体へ書き込まれなくなりました。DDF へ変更を実際に書き込むには、ここで DdfAddIndex、DdfDropIndex、または DdfDropIndexMaintain を呼び出す必要があります。これは Pervasive.SQL 2000 SDK のリリース以降での動作の変更点です。RefreshLocations が False の場合は、IndexList オペレーションはインデックスの VAccess コントロールのメモリ イメージを読み取り、更新します。
DdfTransactionMode と RefreshLocations がともに True に設定されている場合は、IndexList のすべての操作はトランザクション内で実行されます。
DdfKeyUseIndexDdfOnly が True に設定されている場合は、IndexList プロパティは常に DDF にある内容だけを反映します。DdfKeyUseIndexDDFOnly が False の場合、IndexList はインデックス情報が更新されるたびにステータス バッファーから正しいインデックス情報を取得し、ステータス バッファーに保持されない情報については DDF を使用します。
Dim indexes as Variant 'index.ddf からインデックスを取得する VAEngine.DdfKeyUseIndexDDFOnly = True VAEngine.RefreshLocations = True VAEngine.TableName = tableName 'DDF からインデックスを取得する indexes = VAEngine.IndexList VAEngine.RefreshLocations = False 'リスト ボックスでインデックス情報を表示する List1.Clear If Not IsEmpty(indexes) Then For i = 0 to Ubound(indexes,2) Temp = "" For j = 0 to Ubound(indexes, 1) Temp = Temp + CStr(indexes(j, i)) + vbTab Next j List1.AddItem Temp Next i End If 'データ ファイルからインデックスを取得する VAEngine.RefreshLocations = True VAEngine.DdfKeyUseIndexDDFOnly = False VAEngine.TableName = tableName TrueIndexes = VAEngine.IndexList VAEngine.RefreshLocations = False List1.AddItem "------------------------" 'リスト ボックスでインデックス情報を表示する List1.Clear If Not IsEmpty(indexes) Then For i = 0 to Ubound(indexes,2) Temp = "" For j = 0 to Ubound(indexes, 1) Temp = Temp + CStr(indexes(j, i)) + vbTab Next j List1.AddItem Temp Next i End If
影響元:RefreshLocations、DdfPath、TableName、DdfTransactionMode
|