次の方法で共有


CDaoDatabase クラス

それを通じてデータを操作することのできるデータベースへの接続を表します。

class CDaoDatabase : public CObject

解説

サポートされるデータベース形式については、GetName メンバー関数を参照してください。 CDaoWorkspace オブジェクトで表現される特定の "ワークスペース" 上に、1 つ以上のアクティブな CDaoDatabase オブジェクトを同時に持つことができます。 ワークスペースは、Databases コレクションと呼ばれる、開かれているデータベース オブジェクトのコレクションを管理します。

注意

MFC DAO データベース クラスは、ODBC に基づく MFC データベース クラスとは異なるものです。 すべての DAO データベース クラス名には、"CDao" というプリフィックスが付きます。 CDaoDatabase クラスは、ODBC クラス CDatabase と同じインターフェイスが用意されています。 主な違いは、CDatabase は ODBC (Open Database Connectivity) と、DBMS 用の ODBC ドライバーを使って DBMS にアクセスすることです。 CDaoDatabase は、Microsoft Jet データベース エンジンを基にしたデータ アクセス オブジェクト (DAO: Data Access Object) を使ってデータにアクセスします。 一般的に、DAO を基にした MFC クラスは、ODBC を基にした MFC クラスよりも多くの機能を持っています。DAO ベースのクラスは、ODBC ドライバーを使ってアクセスできるのに加え、独自のデータベース エンジンを使ってもデータにアクセスできます。 DAO を基にしたクラスは、DAO を直接呼び出さずにクラスを経由してテーブルを追加するなどの DDL (Data Definition Language) 操作をサポートします。

使用方法

レコードセット オブジェクトを作成するときに、暗黙的にデータベース オブジェクトを作成できます。 また、明示的にデータベース オブジェクトを作成することもできます。 CDaoDatabase で既存のデータベースを明示的に使用するには、次のどちらかを行います。

  • 開いている CDaoWorkspace オブジェクトのポインターを渡して、CDaoDatabase オブジェクトを構築します。

  • または、ワークスペースを指定せずに、CDaoDatabase オブジェクトを構築します。MFC が一時的なワークスペース オブジェクトを作成します。

新しい Microsoft Jet (.MDB) データベースを作成するには、CDaoDatabase オブジェクトを構築し、Create メンバー関数を呼び出します。 Create の呼び出し後に Open を呼び出さないでください。

既存のデータベースを開くには、CDaoDatabase オブジェクトを構築し、Open メンバー関数を呼び出します。

どちらの場合も、DAO データベース オブジェクトをワークスペースの Databases コレクションに追加し、データとの接続を開きます。 そして、接続されたデータベースで操作するため、CDaoRecordsetCDaoTableDef、または CDaoQueryDef オブジェクトを構築するときに、これらのオブジェクトのコンストラクターに CDaoDatabase オブジェクトへのポインターを渡します。 接続を終了するときは、Close メンバー関数を呼び出して CDaoDatabase オブジェクトを破棄します。 Close メンバー関数は、閉じられていないレコードセットをすべて閉じます。

トランザクション

データベース トランザクション処理は、ワークスペース レベルで用意されます。CDaoWorkspace クラスの BeginTrans メンバー関数、CommitTrans メンバー関数、および Rollback メンバー関数を参照してください。

ODBC 接続

ODBC データ ソースを使った作業で、Microsoft Jet (.MDB) データベースに外部テーブルを結び付ける方法をお勧めします。

コレクション

各データベースは、データベース自身が所有するテーブル定義、クエリ定義、レコードセット、リレーションシップ オブジェクトのコレクションを管理しています。 CDaoDatabase クラスには、これらのオブジェクトを操作するメンバー関数が用意されています。

注意

オブジェクトは、MFC データベース オブジェクトではなく、DAO に格納されます。 MFC には、テーブル定義、クエリ定義、およびレコードセットのオブジェクト クラスは用意されていますが、リレーションシップ オブジェクト クラスは用意されていません。

必要条件

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

参照

参照

CObject クラス

階層図

CDaoWorkspace クラス

CDaoRecordset クラス

CDaoTableDef クラス

CDaoQueryDef クラス

CDatabase クラス

CDaoException クラス

その他の技術情報

CDaoDatabase のメンバー