「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次  †
概要  †
以下、ADO.NETデータプロバイダの種類を列挙する。
汎用 .NETデータ プロバイダ  †
- APIレイヤのみの提供。
 
- 下位のドライバを選択できる。
 
- 選択したドライバによって動きが変わる。
 
- .NET同梱のため、別途ラインタイムのインストールが不要。
 
OLE DB  †
System.Data.OleDb?  †
- .NET同梱のため、別途ラインタイムのインストールが不要。
 
ODBC  †
System.Data.Odbc  †
- .NET同梱のため、別途ラインタイムのインストールが不要。
 
OLE DBとODBCの選択  †
結局、SQL Server 2014でまだ廃止されていないようですが、
Accessなどの他のマイクロソフト製品でOLE DBのサポート打ち切りは始まってきているようです。
参考  †
DBMS固有 .NETデータ プロバイダ  †
SQL Server  †
System.Data.SqlClient?  †
- .NET同梱のため、別途ラインタイムのインストールが不要。
 
Oracle  †
System.Data.OracleClient?  †
- .NET同梱のため、別途ラインタイムのインストールが不要。
 
- 2C/Sなどでは、別途インストールのODP.NETと比べ、メリットがあった。
 
- ただし、.NET 4.0から非推奨となっているので注意が必要。
 
ODP.NETデータ プロバイダ  †
- 配列バインドをサポート
 
- フェッチ・サイズをサポート
 
- Oracle Instant Client対応に加え、
 
- 最近マネージドのOracleクライアント不要のODP.NETがリリースされた。
ODP.NET Managed DriverはOracle 12cになって登場したフルマネージドのODP.NETドライバ。
ODAC 12cはOracle 12cで追加されたコンポーネントだが、Oracle 10gまでサポートしている。 
- ODP.NET, Managed Driver requires .NET Framework 4 or later up to .NET Framework 4.5.2
 
- ODP.NET, Unmanaged Driver requires .NET Framework 3.5 SP 1 or later up to .NET Framework 4.5.2
 
- 古いODP.NETは、
- Oracleクライアントとのバージョン不一致や32/64bit不一致
などで動かないなどのトラブルがよく起きるためサポートが面倒。 
- なるべく早く、Oracle Instant ClientやODP.NET, Managed Driverに乗り換えたほうが良い。
 
 
PostgreSQL  †
Npgsql .Net Data Provider for Postgresql  †
dotConnect for PostgreSQL  †
MySQL  †
MySQL Connector/NET  †
ライセンスに注意が必要(GPL)。
- DBサーバのライセンスを整理する  うめつる開発室
http://blog.ume108.mobi/?p=5649
- MySQLのライセンスってどうなってるの
では、Oracle の .NET ライブラリConnector/Netはどうでしょうか?微妙です。
開発する本体プログラムの一部として密接に関係付けられた状態でリンクされるわけですから。
開発したソフトウェアを GPLにして公開するのなら問題はないけれど、
そうでない製品を作るのならConnector/Net を使わないで作るか、
さもなくば MySQL の商用ライセンスを買うか、MySQL を諦めるかということになります。
 
 
- GPLでは頒布に問題があるようです。
- 受託開発やSaaSでは問題無さそうです。
 
- パッケージ的な頒布は問題になりそうです。
 
- GPLについてはコチラを参照。
 
 
DB2  †
DB2.NETデータ プロバイダ  †
HiRDB  †
pddndp20.dll  †
その他  †
接続型データアクセスをサポートする、ADO.NETの前任のデータプロバイダ。
- COMベースの DBMS 接続用 API 。
VB6、VBA、VBScriptなどからデータアクセスする場合に使用できる。 
- ADO.NETと異なり、プロバイダー・ドライバは接続文字列を使用して切り替え可能。
 
DAO  †
主に Jet接続に用いられるが、ODBC接続も可能。
RDO  †
ODBC データベース専用として設計されている。
ADO  †
RDOやDAOの後継
- 接続型データアクセスが既定と考えられているAPI設計だが、
取得したレコードセットをCloseすれは非接続型データアクセスが可能。 
参考  †
OO4O  †
Oracle社のリリースしたカスタムのデータプロバイダ。
#OO4Oは、Oracle Objects for OLEの略称
OO4Oは64bit対応がされていない。
サポート(discon)  †
Oracle11g(11.2)が、OO4Oをサポートする最後のバージョン。
従って、今後、新規のOO4O採用は推奨されない
(VB6、VBA、VBScript等からはADOを使用する)。
移行  †
- OO4OからADO(ADO.NET)への移行は
オブジェクトモデル、APIが異なるため困難。 
- OraDynaset?を使用した接続型データアクセスが中心。
非接続型のADO.NETへの移行には書換が必要になる。 
従って、コンバージョンではなく再構築になる。
参考  †
VC++から  †
以下の様な感じでしょうか。
COM  †
- OLEDB
- atldbcli.h(ATL)
 
- Provider
- Microsoft OLE DB Provider for ODBC
 
- Microsoft OLE DB Provider for Microsoft Jet
 
- Microsoft Office 12.0 Access Database Engine OLE DB Provider
 
- , etc.
 
 
 
C++/CLI  †
ADO.NETデータプロバイダ
参考  †
参考  †
構築  †
GPLについて。  †
GNU General Public License  †
- GNUプロジェクト - フリーソフトウェアファウンデーション
 
ケース  †
コネクション・プーリング  †
コネクション・プーリング(接続プール)は、
Tags: :データアクセス, :ADO.NET