マイクロソフト系技術情報 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クライアント不要の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

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の略称

64bit対応

OO4Oは64bit対応がされていない。

  • 詳しくは、コチラを参照して下さい。

サポート(discon)

Oracle11g(11.2)が、OO4Oをサポートする最後のバージョン。

従って、今後、新規のOO4O採用は推奨されない
(VB6、VBA、VBScript等からはADOを使用する)。

移行

  • OO4OからADO(ADO.NET)への移行は
    オブジェクトモデル、APIが異なるため困難。
  • OraDynaset?を使用した接続型データアクセスが中心。
    非接続型のADO.NETへの移行には書換が必要になる。

従って、コンバージョンではなく再構築になる。

参考

VC++から

以下の様な感じでしょうか。

COM

  • ODBC
    • afxdb.h(MFC)
    • Provider
  • DAO(DAO.DBEngine)
    • Jet
    • ODBC
  • RDO(RDO.)
    • ODBC専用
  • 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.
  • ADO(ADODB.)
    • OLEDB

C++/CLI

ADO.NETデータプロバイダ

参考

参考

構築

Oracle11gXE + ODP.NET Managed Driver

PostgreSQL + NpgSql

GPLについて。

GNU General Public License

ケース

  • オープンソースとGPL,ASP 著作権契約書の駒沢公園行政書士事務所
    http://ootsuka-houmu.com/service/gpl.html

    ASPとGPL:SPサービスが配布にあたらないことが明らかとなりました(GPLv3)。

  • GPLにおいて納品は頒布ではない? - uehaj's blog
    http://uehaj.hatenablog.com/entry/20100710/1278772393

    IPAからダウンロードできる「GNU GPLv3 逐条解説書」には

    • GPLv2では、納品は頒布に相当しないとの解釈がFAQで公開されている。
    • GPLv3では、納品はコンベイ*1にあたるものの、GPLv3の条件は課されない。

コネクション・プーリング

コネクション・プーリング(接続プール)は、

  • 参考

Tags: :データアクセス, :ADO.NET


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-11-06 (火) 22:06:21 (11d)