CDaoTableDef クラス
更新 : 2007 年 11 月
ベース テーブル、またはアタッチ テーブルの格納された定義を表現します。
class CDaoTableDef : public CObject
解説
各 DAO データベース オブジェクトは、保存されているすべての DAO テーブル定義オブジェクトを保持するコレクションを管理します。このコレクションは TableDefs と呼ばれます。
CDaoTableDef オブジェクトを使用してテーブル定義を操作します。たとえば、次の操作を実行できます。
データベースの、ローカル テーブル、アタッチ テーブル、または外部テーブルのフィールドやインデックスの構造を調べることができます。
アタッチ テーブルに対して SetConnect メンバ関数や SetSourceTableName メンバ関数を呼び出し、RefreshLink メンバ関数を使用してアタッチ テーブルへの接続を更新できます。
CanUpdate メンバ関数を呼び出して、テーブルのフィールド定義を編集できるかどうかを調べることができます。
GetValidationRule メンバ関数と SetValidationRuleメンバ関数、および GetValidationText メンバ関数と SetValidationText メンバ関数を使用して、入力条件を設定または取得できます。
Open メンバ関数を使用して、テーブル タイプ、ダイナセット タイプ、またはスナップショット タイプの CDaoRecordset オブジェクトを作成できます。
メモ : DAO データベース クラスは、オープン データベース コネクティビティ (ODBC: Open Database Connectivity) に基づいている MFC データベース クラスとは性質が異ります。すべての DAO データベース クラス名には、"CDao" というプリフィックスが付きます。以前のように、DAO クラスを使用して、ODBC データ ソースにアクセスすることもできます。DAO クラスは Microsoft Jet データベース エンジン固有のクラスであるため、一般により充実した機能を提供できます。
既存のテーブルでの作業や新しいテーブルの作成にテーブル定義オブジェクトを使用するには
どちらの場合でも、最初にテーブルを構築します。そのときに、テーブルが所属する CDaoDatabase オブジェクトへのポインタを指定して、CDaoTableDef オブジェクトを構築します。
次に、作業内容に応じて、次の操作を実行します。
既存の保存されたテーブルを使用するには、保存されているテーブル名を指定して、テーブル定義オブジェクトの Open メンバ関数を呼び出します。
新しいテーブルを作成するには、テーブル名を指定して、テーブル定義オブジェクトの Create メンバ関数を呼び出します。テーブルにフィールドやインデックスを追加するには、CreateField と CreateIndex を呼び出します。
データベースの TableDefs コレクションにテーブルを追加してテーブルを保存するには、Append を呼び出します。Create でテーブル定義が開かれた状態になるため、Create を呼び出した後は Open を呼び出しません。
ヒント : 保存されたテーブルを作成する最も簡単な方法は、Microsoft Access を使用してテーブルを作成し、データベースに保存する方法です。これで、MFC コードでそのテーブルを開いて使用できます。
開いた、または作成したテーブル定義オブジェクトを使用するには、パラメータ nOpenType に dbOpenTable を指定すると共に、テーブル定義名を指定して、CDaoRecordset オブジェクトを作成および開きます。
テーブル定義オブジェクトを使用して CDaoRecordset オブジェクトを作成するためには、通常、上記の方法でテーブル定義オブジェクトを作成または開いた後、レコードセット オブジェクトを構築し、CDaoRecordset::Open を呼び出すときに、テーブル定義オブジェクトへのポインタを渡します。テーブル定義オブジェクトは、開かれた状態で渡す必要があります。詳細については、CDaoRecordset クラスを参照してください。
テーブル定義オブジェクトを使用した後に、Close メンバ関数を呼び出し、テーブル定義オブジェクトを破棄します。
必要条件
ヘッダー : afxdao.h