この機能は維持されていますが、RefreshLocations の意味は、オペレーションを実行するために DDF 自体を使用するか、あるいは辞書情報に関する ActiveX コントロールのメモリ イメージを使用するかを示すように拡張されました。
言い換えると、オペレーションがコントロールのメモリ イメージまたは DDF を参照できる場合は、RefreshLocations を
False に設定すれば、コントロールはメモリ イメージのみを使ってオペレーションを処理するように制限されます。
RefreshLocations が
True である場合、オペレーションはメモリ イメージとファイル自体に作用します。したがって、
RefreshLocations は ActiveX コントロールの DDF 処理用メソッドとプロパティの多くに作用する優先プロパティです。
既に述べたように、ActiveX アクセス方法はバリアント配列を使用してコア DDF 情報を公開します。ActiveX インターフェイスが使用する配列は、1 次元として列、2 次元として行を持つ 2 次元配列です。この配列では、Visual Basic ユーザーは ReDim Preserve 関数を使用して行数を変更することができます。列は要求された情報のさまざまな面を表すのに対して、行は項目の集合を表します。たとえば、
GetTableList は 2 次元配列を返します。1 次元は 3 つの情報、つまり、
TableID、
TableName、および
TableLocation から構成されているのに対して、2 次元は辞書内のテーブルごとに 1 行を含んでいます。したがって、Visual Basic におけるテーブル名のリストの取得は以下のように行われます。
FieldList と
IndexList は、ほとんど同じ機能を果たします。ただし、これらはプロパティであるため、配列のエントリを変更したり、エントリを追加することができます。各配列の 1 次元の構造については、
「FieldList」 と
「IndexList」 を参照してください。言うまでもなく、各配列の 2 次元はフィールド数またはインデックス数を表します。
DDF を変更する場合は、すべての変更がコミットできる状態になるまで ActiveX メモリ イメージに変更情報を保管しておき、その後 DdfAddTable を使用してファイルに変更情報をコミットする方が効率的です。したがって、
FieldList または
IndexList を設定するときは
RefreshLocations を
False に設定することをお勧めします。Visual Basic では、
ReDim 関数で
Preserve オプションを使用すれば、既存の定義にフィールドを追加することができます。また、
DdfModifyTableName と
DdfModifyLocation を使用して、現在のメモリ イメージまたは DDF ファイル自体に含まれるテーブルを変更することもできます。たとえば、次のようにします。
空のテーブルを作成するとき、ActiveX アクセス方法は現在のメモリ イメージに作業テーブルがなく、すべてのフィールドおよびインデックス情報が消去されていることを認識できる必要があります。DdfAddTableName がこの機能を果たします。現在のテーブル メモリ イメージを DDF に追加する
DdfAddTable や、現在のテーブル名を変更しても他のすべての情報を保つ
DdfModifyTableName と違い、
DdfAddTableName は現在のテーブル リストに追加スロットを作成し、空のテーブルに関連するすべてのフィールドおよびインデックス情報を消去します。この作業を行うときは、DDF に空のテーブルを作らないよう、
RefreshLocations を
False に設定することをお勧めします。
DdfModifyLocation、
FieldList および
IndexList オペレーションを使用して、新しい空のメモリ イメージを作成することができます。次に、
DdfAddTable を使用して DDF にそのイメージを書き出すことができます。
DdfClearFields と
DdfClearIndexes は、現在のテーブルの既存のフィールド情報およびインデックス情報をすばやく消去できる便利な方法を提供します。
DdfGetComments。このメソッドの用途は非常に限定的です。
RefreshLocations が
False である場合、DDF 以外のテーブルを開いているときは永続的なメモリ イメージが読み取られます。ただし、永続的なメモリ イメージにはコメント情報が含まれていません。
DdfGetComments は
RefreshLocations を無視するため、このメソッドを使用してコメント情報を永続的な DDF の情報と同調させるように ActiveX を強制設定することができます。
DdfKeyUseIndexDDFOnly を
True に設定すると、コントロールはインデックス情報をステータス バッファー内のインデックス情報で上書きしません。つまり、正しくない INDEX.DDF エントリがあると、コントロールはファイル内をナビゲートできませんが、DDF の現在の状態を反映します。このため、正しくないエントリの診断と修復が容易になります。