次の方法で共有


CDaoTableDef クラス

ベース テーブル、またはアタッチ テーブルの格納された定義を表現します。

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 データベース エンジン固有のクラスであるため、一般により充実した機能を提供できます。

既存のテーブルでの作業や新しいテーブルの作成にテーブル定義オブジェクトを使用するには

  1. どちらの場合でも、最初にテーブルを構築します。そのときに、テーブルが所属する CDaoDatabase オブジェクトへのポインターを指定して、CDaoTableDef オブジェクトを構築します。

  2. 次に、作業内容に応じて、次の操作を実行します。

    • 既存の保存されたテーブルを使用するには、保存されているテーブル名を指定して、テーブル定義オブジェクトの Open メンバー関数を呼び出します。

    • 新しいテーブルを作成するには、テーブル名を指定して、テーブル定義オブジェクトの Create メンバー関数を呼び出します。 テーブルにフィールドやインデックスを追加するには、CreateFieldCreateIndex を呼び出します。

    • データベースの TableDefs コレクションにテーブルを追加してテーブルを保存するには、Append を呼び出します。 Create でテーブル定義が開かれた状態になるため、Create を呼び出した後は Open を呼び出しません。

      ヒント

      保存されたテーブルを作成する最も簡単な方法は、Microsoft Access を使用してテーブルを作成し、データベースに保存する方法です。 これで、MFC コードでそのテーブルを開いて使用できます。

開いた、または作成したテーブル定義オブジェクトを使用するには、パラメーター nOpenType に dbOpenTable を指定すると共に、テーブル定義名を指定して、CDaoRecordset オブジェクトを作成および開きます。

テーブル定義オブジェクトを使用して CDaoRecordset オブジェクトを作成するためには、通常、上記の方法でテーブル定義オブジェクトを作成または開いた後、レコードセット オブジェクトを構築し、CDaoRecordset::Open を呼び出すときに、テーブル定義オブジェクトへのポインターを渡します。 テーブル定義オブジェクトは、開かれた状態で渡す必要があります。 詳細については、CDaoRecordset クラスを参照してください。

テーブル定義オブジェクトを使用した後に、Close メンバー関数を呼び出し、テーブル定義オブジェクトを破棄します。

必要条件

**ヘッダー:**afxdao.h

参照

参照

CObject クラス

階層図

CDaoDatabase クラス

CDaoRecordset クラス

その他の技術情報

CDaoTableDef のメンバー