|
ActiveX アクセス方法のメモリ イメージ(および DDF)でテーブルを作成することは、データ ファイルに関連付けられた DDF エントリがない場合や、新しいテーブルを作成する場合に有用です。このプロセスには、以下の 3 つの基本的な手順があります。
新しいテーブルを作成する場合は、この後に第 4 の手順、つまり、データ ファイルの作成を行います。
メモ
同じディレクトリに、ファイル名が同一で拡張子のみが異なるようなファイルを置かないでください。たとえば、同じディレクトリ内のデータ ファイルの 1 つに Invoice.btr、もう 1 つに Invoice.mkd という名前を付けてはいけません。このような制限が設けられているのは、データベース エンジンがさまざまな機能でファイル名のみを使用し、ファイルの拡張子を無視するためです。ファイルの識別にはファイル名のみが使用されるため、ファイルの拡張子だけが異なるファイルは、データベース エンジンでは同一のものであると認識されます。
空のテーブルを作成するとき、ActiveX アクセス方法は現在のメモリ イメージに作業テーブルがなく、すべてのフィールドおよびインデックス情報が消去されていることを認識できる必要があります。DdfAddTableName がこの機能を果たします。現在のテーブル メモリ イメージを DDF に追加する DdfAddTable や、現在のテーブル名を変更しても他のすべての情報を保つ DdfModifyTableName と違い、DdfAddTableName は現在のテーブル リストに追加スロットを作成し、空のテーブルに関連するすべてのフィールドおよびインデックス情報を消去します。この作業を行うときは、DDF に空のテーブルを作らないよう、RefreshLocations を False に設定することをお勧めします。
DdfModifyLocation、FieldList および IndexList オペレーションを使用して、新しい空のメモリ イメージを作成することができます。次に、DdfAddTable を使用して DDF にそのイメージを書き出すことができます。
辞書に新しいテーブルを追加するには
Option Base 0 'DDF から直接現在の情報を取得 VAccess1.RefreshLocations = True 'VAccess を正しい DDF に設定 VAccess1.DdfPath = "c:¥mydata" 'テーブル設定中はメモリ イメージでのみ作業する VAccess1.RefreshLocations = False '現在のメモリ イメージに新しいテーブル スロットを作成 VAccess1.DdfAddTableName "NewTable" '場所を設定 VAccess1.DdfModifyLocation "newTable.mkd" .... <フィールドとインデックス情報を設定> .... 'テーブルをファイルに保存 - 既存の定義を上書きしない 'この定義はまだ存在しないはずであるため DdfAddTable False
メモ
DdfDropTable への 1 回の呼び出しで、テーブル定義全体を削除することができます。当然のことながら、このオペレーションは決定的な事態を引き起こすため、注意して使用する必要があります。
|