次の方法で共有


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 ドライバーのヘルプ ファイルを参照してください。

参照

その他の技術情報

よく寄せられる質問 - データ アクセス