Open棟梁Project - マイクロソフト系技術情報 Wiki
目次 †
概要 †
以下、ADO.NETデータプロバイダの種類を列挙する。
汎用データ プロバイダ †
- APIレイヤのみの提供。
- 下位のドライバを選択できる。
- 選択したドライバによって動きが変わる。
- .NET同梱のため、別途ラインタイムのインストールが不要。
OLE DB †
OLEDB.NETデータ プロバイダ(System.Data.OleDb?) †
- .NET同梱のため、別途ラインタイムのインストールが不要。
ODBC †
ODBC.NETデータ プロバイダ(System.Data.Odbc) †
- .NET同梱のため、別途ラインタイムのインストールが不要。
OLE DBとODBCの選択 †
結局、SQL Server 2014でまだ廃止されていないようですが、
Accessなどの他のマイクロソフト製品でOLE DBのサポート打ち切りは始まってきているようです。
参考 †
DBMS固有データ プロバイダ †
SQL Server †
SQL Server用.NETデータ プロバイダ(System.Data.SqlClient?) †
- .NET同梱のため、別途ラインタイムのインストールが不要。
Oracle †
Oracle用.NETデータ プロバイダ(System.Data.OracleClient?) †
- .NET同梱のため、別途ラインタイムのインストールが不要。
- 2C/Sなどでは、別途インストールのODP.NETと比べメリットあり。
- ただし、.NET 4.0から非推奨となっているので注意が必要。
ODP.NETデータ プロバイダ †
- 配列バインドをサポート
- フェッチ・サイズをサポート
- Oracle Instant Client対応に加え、
- 最近マネージドのOracleクライアント不要のODP.NETがリリースされたようです。
DB2 †
DB2.NETデータ プロバイダ †
HiRDB †
HiRDB用.NETデータ プロバイダ(pddndp20.dll) †
MySQL †
MySQL用.NETデータ プロバイダ(MySQL Connector/NET) †
ライセンスに注意が必要(GPL)。
- DBサーバのライセンスを整理する うめつる開発室
http://blog.ume108.mobi/?p=5649
- MySQLのライセンスってどうなってるの
では、Oracle の .NET ライブラリConnector/Netはどうでしょうか?微妙です。開発する本体プログラムの一部として密接に関係付けられた状態でリンクされるわけですから。開発したソフトウェアを GPLにして公開するのなら問題はないけれど、そうでない製品を作るのならConnector/Net を使わないで作るか、さもなくば MySQL の商用ライセンスを買うか、MySQL を諦めるかということになります。
- GPLでは頒布に問題があるようです。
- 受託開発やSaasでは問題無さそうです。
- パッケージ的な頒布は問題になりそうです。
- GPLについてはコチラを参照。
PostgreSQL †
PostgreSQL用.NETデータ プロバイダ(Npgsql .Net Data Provider for Postgresql) †
その他 †
接続型データアクセスをサポートする、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について。 †