次の方法で共有


CDaoDatabase クラス

更新 : 2007 年 11 月

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

class CDaoDatabase : public CObject

解説

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

34fa51ss.alert_note(ja-jp,VS.90).gifメモ :

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 クラスには、これらのオブジェクトを操作するメンバ関数が用意されています。

34fa51ss.alert_note(ja-jp,VS.90).gifメモ :

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

必要条件

ヘッダー : afxdao.h

参照

参照

CObject クラス

階層図

CDaoWorkspace クラス

CDaoRecordset クラス

CDaoTableDef クラス

CDaoQueryDef クラス

CDatabase クラス

CDaoException クラス

その他の技術情報

CDaoDatabase のメンバ