次の方法で共有


DAO と ODBC の使い分け

更新 : 2007 年 11 月

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

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 データ ソースにアクセスします。

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

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

参照

その他の技術情報

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