データ アクセス プログラミング (MFC/ATL)
長年にわたって、Visual C ++ ではデータベースを操作するいくつかの方法を提供してきました。 2011 年に Microsoft は、ネイティブ コードから SQL Server 製品にアクセスするのに望ましいテクノロジである Open Database Connectivity (ODBC) に合わせて調整中であると発表しました。 ODBC は業界標準であり、これを使用することで、複数のプラットフォームおよびデータ ソースでのコードの最大の移植性が得られます。 ほとんどの SQL データベース製品および多くの NoSQL 製品で ODBC がサポートされます。 ODBC は、低レベルの ODBC API を呼び出して直接使用できます。あるいは、MFC ODBC ラッパー クラス、またはサードパーティの C++ ラッパー ライブラリを使用することもできます。
OLE DB は、COM 仕様に基づく低レベルで高パフォーマンスの API であり、Windows でのみサポートされます。 プログラムでリンク サーバーにアクセスする場合は、OLE DB を使用します。 ATL には OLE DB テンプレートが用意されており、カスタム OLE DB プロバイダーとコンシューマーを容易に作成できます。 Microsoft SQL Server の最新のプロバイダーは、OLE DB Driver for SQL Server のドキュメントに記載されています。
データ アプリケーションの移植
レガシ アプリケーションで OLE DB またはより高レベルの ADO インターフェイスを使用して SQL Server に接続する場合は、最新の SQL Server 機能を利用するために、最新の OLE DB Driver for SQL Server に移行することを検討してください。 もう 1 つの方法として、クロスプラットフォームの移植性または最新の SQL Server の機能が不要な場合は、Microsoft OLE DB Provider for ODBC (MSDASQL) を使用できる可能性があります。 MSDASQL では、OLE DB と ADO (内部的に OLEDB を使用する) に構築されたアプリケーションから、ODBC ドライバーを介してデータ ソースにアクセスできます。 変換レイヤーと同様に、MSDASQL はデータベースのパフォーマンスに影響する可能性があります。 ご利用のアプリケーションに対する影響が大きいかどうかを判別するためにテストを行う必要があります。 MSDASQL は Windows オペレーティング システムに付属しており、Windows Server 2008 および Windows Vista SP1 が、64 ビット バージョンのテクノロジを含めるための最初の Windows リリースです。
C++ アプリケーションから ODBC 経由で SQL Server または Azure SQL Database に接続する場合は、最新の ODBC ドライバーを使用する必要があります。
C++/CLI を使用する場合は、引き続き、通常どおり ADO.NET を使用できます。 詳細については、「ADO.NET によるデータ アクセス (C++/CLI)」と「Visual Studio でのデータ アクセス」を参照してください。
- ODBC ラッパー クラスに加え、MFC では、Access データベースに接続するための Data Access Objects (DAO) ラッパー クラスも提供されます。 ただし、DAO は廃止されています。 CDaoDatabase または CDaoRecordset に基づくすべてのコードをアップグレードする必要があります。
Microsoft Windows でのデータ アクセス テクノロジの歴史の詳細については、ウィキペディアの「Microsoft Data Access Components」を参照してください。