「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>データアクセスのいろいろ]]
-[[戻る>ADO.NET]]

* 目次 [#je117dc1]
#contents

*概要 [#p227ab20]
以下、ADO.NETデータプロバイダの種類を列挙する。

*汎用 .NETデータ プロバイダ [#p63e7daa]
-APIレイヤのみの提供。
-下位のドライバを選択できる。
-選択したドライバによって動きが変わる。
-.NET同梱のため、別途ラインタイムのインストールが不要。

**OLE DB [#ha886c89]
-OLE DB の概要~
https://msdn.microsoft.com/ja-jp/library/Dd148548.aspx

***System.Data.OleDb [#c6dd7162]
-.NET同梱のため、別途ラインタイムのインストールが不要。

**ODBC [#gf94818e]
-ODBC の概要~
https://msdn.microsoft.com/ja-jp/library/Cc948698.aspx
-ODBC の基礎~
https://msdn.microsoft.com/ja-jp/library/thzzea08.aspx

***System.Data.Odbc [#y0beb592]
-.NET同梱のため、別途ラインタイムのインストールが不要。

**OLE DBとODBCの選択 [#zd12cac3]
結局、SQL Server 2014でまだ廃止されていないようですが、~
Accessなどの他のマイクロソフト製品でOLE DBのサポート打ち切りは始まってきているようです。

***参考 [#hd2f3d4d]
-SQL Server 2012 以降の SQL Server Native Client OLE DB プロバイダーの廃止~
https://msdn.microsoft.com/ja-jp/library/hh510181.aspx
--Microsoft is Aligning with ODBC for Native Relational Data Access - FAQ~
https://social.technet.microsoft.com/Forums/sqlserver/en-US/e696d0ac-f8e2-4b19-8a08-7a357d3d780f/microsoft-is-aligning-with-odbc-for-native-relational-data-access-faq?forum=sqldataaccess

-SQL Server、OLE DBサポート廃止へ - ODBC推奨  マイナビニュース~
http://news.mynavi.jp/news/2011/09/01/083/
-データ連携と統合を科学するブログ 結局、~
Microsoft SQL Server 2014 のOLEDBプロバイダーはどうなった?~
http://bitdatasci.blogspot.jp/2014/10/microsoft-sql-server-2014-oledb.html

*DBMS固有 .NETデータ プロバイダ [#kaf99732]

**SQL Server [#z6a38476]
***System.Data.SqlClient [#pf5917d3]
-.NET同梱のため、別途ラインタイムのインストールが不要。

**Oracle [#e86b81c5]
***System.Data.OracleClient [#xb02910f]
-.NET同梱のため、別途ラインタイムのインストールが不要。
-2C/Sなどでは、別途インストールのODP.NETと比べ、メリットがあった。
-ただし、.NET 4.0から非推奨となっているので注意が必要。

--System.Data.OracleClientが.NET 4.0から~
非推奨になる (Oracle, ODP.NET, ADO.NET) - いろいろ備忘録日記~
http://devlights.hatenablog.com/entry/20090629/p1
--マイクロソフト製OracleClientが非推奨に~
http://www.infoq.com/jp/news/2009/06/oracleclient_deprecated
>マイクロソフトは、System.Data.OracleClientが.NET 4.0以降は非推奨になると発表した。~
この名前空間に含まれるクラスは、.NET 4.0では非推奨マークが付けられ、将来のバージョンでは削除される。

***ODP.NETデータ プロバイダ [#j939b851]
-配列バインドをサポート
-フェッチ・サイズをサポート

-Oracle Instant Client対応に加え、
--Oracle Instant Client~
http://www.oracle.com/technetwork/jp/database/features/instant-client/index-352321-ja.html
---Instant Client Downloads~
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html?ssSourceSiteId=otnjp

-最近マネージドのOracleクライアント不要のODP.NETがリリースされた。~
ODP.NET Managed DriverはOracle 12cになって登場したフルマネージドのODP.NETドライバ。~
ODAC 12cはOracle 12cで追加されたコンポーネントだが、Oracle 10gまでサポートしている。

--Oracle Client(ODP.NET)を手っ取り早くインストールする方法について - 素敵なおひげですね~
http://stknohg.hatenablog.jp/entry/2014/10/24/074303
--ODP.NET Managed Driver(管理対象ドライバ)についての私的まとめ - 素敵なおひげですね~
http://stknohg.hatenablog.jp/entry/2014/11/02/173039

--ODAC 12c Release 3 Installation Instructions~
http://www.oracle.com/technetwork/topics/dotnet/downloads/install121021-2389380.html
---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

-参考 : [[Oracle11gXE + ODP.NET Managed Driver]]

**PostgreSQL [#dad19e08]
***Npgsql .Net Data Provider for Postgresql [#h5093e53]

-Npgsql~
http://www.npgsql.org/
-Postgresql のための Npgsql .Net データプロバイダ : プロジェクトホームページ~
http://www.postgresql.jp/document/NPGSQL/index.html
-.NETライブラリ「Npgsql」によるPostgreSQLの活用 - Build Insider~
http://www.buildinsider.net/small/npgsql/01

-参考 : [[PostgreSQL + NpgSql]]

***dotConnect for PostgreSQL [#b80f40c1]
-dotConnect for PostgreSQL~
ADO.NET Provider for PostgreSQL with Entity Framework~
LINQ to PostgreSQL and NHibernate Support~
https://www.devart.com/dotconnect/postgresql/

**MySQL [#k23406ba]
***MySQL Connector/NET [#zdb6aff1]
ライセンスに注意が必要(GPL)。

-DBサーバのライセンスを整理する  うめつる開発室~
http://blog.ume108.mobi/?p=5649
--MySQLのライセンスってどうなってるの
>では、Oracle の .NET ライブラリConnector/Netはどうでしょうか?微妙です。~
開発する本体プログラムの一部として密接に関係付けられた状態でリンクされるわけですから。~
開発したソフトウェアを GPLにして公開するのなら問題はないけれど、~
そうでない製品を作るのならConnector/Net を使わないで作るか、~
さもなくば MySQL の商用ライセンスを買うか、MySQL を諦めるかということになります。

-GPLでは頒布に問題があるようです。
--受託開発やSaaSでは問題無さそうです。
--パッケージ的な頒布は問題になりそうです。
--GPLについては[[コチラ>#ac4107c2]]を参照。

**DB2 [#s07d659e]
***DB2.NETデータ プロバイダ [#m120bf15]

**HiRDB [#aa9b1539]
***pddndp20.dll [#j4ee843d]
-配列バインドをサポート
-型指定、サイズ指定が必須

*その他 [#b3b449f1]
接続型データアクセスをサポートする、ADO.NETの前任のデータプロバイダ。

-[[COM]]ベースの DBMS 接続用 API 。~
VB6、VBA、VBScriptなどからデータアクセスする場合に使用できる。

-ADO.NETと異なり、プロバイダー・ドライバは接続文字列を使用して切り替え可能。

-サンプルなどはインターネット上から検索できる。

**DAO [#v4d4289f]
主に Jet接続に用いられるが、ODBC接続も可能。

**RDO [#zf62ec81]
ODBC データベース専用として設計されている。

**ADO [#jc8baf0c]
RDOやDAOの後継

-接続型データアクセスが既定と考えられているAPI設計だが、~
取得したレコードセットをCloseすれは非接続型データアクセスが可能。

-[FILE] ODBC、OLEDB、ADO、RDS での接続文字列の~
使用方法を説明するための MDACCON.EXE ファイル~
https://support.microsoft.com/kb/193332/JA?wa=wsignin1.0

-ADO超入門 - Access VBA Tips~
http://www.happy2-island.com/access/gogo03/capter00301.shtml

***参考 [#j94eab1b]

-ADO Version 2.6~
http://msdn.microsoft.com/ja-jp/library/cc407851.aspx

-ActiveX Data Objects - Wikipedia~
http://ja.wikipedia.org/wiki/ActiveX_Data_Objects

**OO4O [#n1995e2c]
Oracle社のリリースしたカスタムのデータプロバイダ。~
#OO4Oは、Oracle Objects for OLEの略称

***[[64bit対応]] [#nb3dac92]
OO4Oは[[64bit対応]]がされていない。~

-詳しくは、[[コチラ>WOW64#v281156a]]を参照して下さい。

***サポート(discon) [#kaec5f4d]
Oracle11g(11.2)が、OO4Oをサポートする最後のバージョン。

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

-Oracle Objects for OLEの紹介~
http://docs.oracle.com/cd/E16338_01/win.112/b58887/intro.htm
>Oracle Database 11gリリース2(11.2)は、Oracle Objects for OLEをサポートする最後のデータベース・バージョンです。

-ODACのリリース情報(対応状況)
--Oracle Data Access Components (ODAC) for Windows Downloads~
32-bit Oracle Data Access Components (ODAC) with Oracle Developer Tools for Visual Studio~
http://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.html
---ODAC 12c Release 3 (12.1.0.2.1) Installation Instructions, Setup, and Notes~
http://www.oracle.com/technetwork/topics/dotnet/downloads/install121021-2389380.html
---ODAC 11.2.0.3.0 Installation Instructions, Setup, and Notes~
http://www.oracle.com/technetwork/topics/dotnet/downloads/install112030-1440546.html

***移行 [#ue9961b4]
-OO4OからADO(ADO.NET)への移行は~
オブジェクトモデル、APIが異なるため困難。

-OraDynasetを使用した接続型データアクセスが中心。~
非接続型のADO.NETへの移行には書換が必要になる。

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

***参考 [#j5db0af1]

-Oracle Objects for OLEの紹介~
https://docs.oracle.com/cd/E16338_01/win.112/b58887/intro.htm

-OTN Japan - 意外と簡単! .NETでOracle:oo4oからODP.NET移行編~
http://otndnld.oracle.co.jp/easy/dotnet/oo4otoodp

**VC++から [#d42696a2]
-Visual C++ でのデータ アクセス~
https://msdn.microsoft.com/ja-jp/library/vstudio/7wtdsdkh.aspx

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

***COM [#p50be87a]

-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 [#n18bca3e]
ADO.NETデータプロバイダ

**参考 [#a8892a5f]

-CX's Hello, World!
--ODBC~
http://cx20.main.jp/blog/hello/category/odbc/
--DAO~
http://cx20.main.jp/blog/hello/category/dao/
--OLE DB~
http://cx20.main.jp/blog/hello/category/ole-db/

--ADO~
http://cx20.main.jp/blog/hello/category/ado/
--ACE Database~
http://cx20.main.jp/blog/hello/category/ace-database/
--oo4o~
http://cx20.main.jp/blog/hello/category/oo4o/

--ADO.NET~
http://cx20.main.jp/blog/hello/category/ado-net/

-Microsoft Data Access Components - Wikipedia, the free encyclopedia~
https://en.wikipedia.org/wiki/Microsoft_Data_Access_Components

-MDAC/Windows DAC を使用するアプリケーションの開発/動作環境~
https://msdn.microsoft.com/ja-jp/data/gg607260.aspx

-ADO 時代の非接続型データアクセス~
とあるコンサルタントのつぶやき - Site Home - MSDN Blogs~
http://blogs.msdn.com/b/nakama/archive/2008/10/16/ado.aspx

*参考 [#t5954b91]
**コネクション・プーリング [#f61acf4f]
コネクション・プーリング(接続プール)は、
-接続を再利用することで性能向上を図る仕組み。
-この機能は、ADO.NETデータプロバイダが提供する。
-通常、既定で有効になっている。接続文字列などでconfigする。
-[[ベース クライアント セキュリティ モデルでは利用不可>リソース アクセス ストラテジ#xbea5cc0]]。

-参考

--[[SQL Server のコネクションとセッション]]

--接続プール~
https://msdn.microsoft.com/ja-jp/library/bb399543.aspx
--ADO.NET入門記-004 - いろいろ備忘録日記~
(コネクションプーリングをする場合としない場合の速度差)~
http://devlights.hatenablog.com/entry/20070812/p4
--門外不出のOracle現場ワザ 第5章~
DBアクセスの空白地帯 コネクションプーリングを極める~
http://www.oracle.com/technetwork/jp/articles/chapter5-2-085301-ja.html

**GPLについて。 [#ac4107c2]

***GNU General Public License [#eedd19ef]
-GNU General Public License - Wikipedia~
https://ja.wikipedia.org/wiki/GNU_General_Public_License

-GNUプロジェクト - フリーソフトウェアファウンデーション
--GNU一般公衆ライセンス v3.0~
http://www.gnu.org/licenses/gpl.html
--GNU一般公衆ライセンス v2.0~
http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
--GNU一般公衆ライセンス v1.0~
http://www.gnu.org/licenses/old-licenses/gpl-1.0.html

***ケース [#k905c0b2]
-オープンソースと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