DAO と ODBC の使い分け
注意
Visual C++ .NET では、Visual C++ 開発環境およびウィザードでは DAO はサポートされなくなりました (DAO クラスは含まれているので、このクラスを使うことはできます)。 新規プロジェクトの作成には、[OLE DB テンプレート] または [ODBC] の使用をお勧めします。 DAO は、既存のアプリケーションを保守するためだけに使用してください。
DAO と ODBC のどちらの MFC クラスを使うかは、ニーズに応じて異なります。
ODBC クラスは、ODBC データ ソースだけを使う場合に適しています。特に、MFC ODBC によってパフォーマンスが向上するクライアント サーバー環境で使います。
DAO クラスは、主に Microsoft Jet (.mdb) データベース、または Microsoft Jet データベース エンジンで直接読み込むことができる他のデータベース形式を使用する場合に使用します。 これらのデータベース形式については、「DAO と ODBC を使ってアクセスできるデータ ソース」を参照してください。
Microsoft Jet データベース エンジンの速度を上げたり、DAO クラスの付加機能を使用したりするには、DAO クラスを経由して ODBC データ ソースにアクセスします。
注意
DAO を使用する場合は、ハード ディスクの容量を増やす必要があります。
DAO クラスには、以下の利点があります。
主に Microsoft Jet (.mdb) データベースを使用する場合などにパフォーマンスが優れている。
ODBC クラス、Microsoft Access Basic、Microsoft Visual Basic との互換性がある。
検証規則にアクセスできる。
テーブル間の関係を指定できる。
データ アクセス モデルがより充実している。たとえば、DAO クラスはデータ定義言語 (DDL: Data Definition Language) やデータ操作言語 (DML: Data Manipulation Language) をサポートしています。 詳細については、「DDL および DML のサポート」を参照してください。
主な相違点を次の表に示します。この表に基づいてクラスを選択してください。
MFC の DAO クラスと ODBC クラスの使い分け
項目 |
DAO クラスの場合 |
ODBC クラスの場合 |
---|---|---|
.MDB ファイルにアクセスする |
○ |
○ |
ODBC データ ソースにアクセスする |
○ |
○ |
16 ビットで使用できる |
× |
○ |
32 ビットで使用できる |
○ |
○ |
64 ビットで使用できる |
× |
○ |
データベースの圧縮 |
○ |
× |
データベース エンジンのサポート |
Microsoft Jet データベース エンジン |
対象の DBMS |
DDL サポート |
○ |
ODBC を直接呼び出す場合だけ可 |
DML サポート |
○ |
○ |
MFC への実装形態 |
DAO コア関数の "ラップ" クラス |
ODBC API の "ラップ" ではなく、簡略化された抽象クラス |
最適な用途 |
.MDB ファイル (Microsoft Access) |
対応するドライバーがある DBMS (クライアント サーバー状況内を主とする) |
トランザクションのサポート |
ソリューション単位 (ODBC データの場合はデータベース単位) |
データベース単位 |
なお、ODBC ドライバーの機能はそれぞれ異なることを忘れないでください。 詳細については、『ODBC Programmer's Reference』と各 ODBC ドライバーのヘルプ ファイルを参照してください。