Open棟梁Project - マイクロソフト系技術情報 Wiki

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

* 目次 [#je117dc1]
#contents

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

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

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

***OLEDB.NETデータ プロバイダ(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

***ODBC.NETデータ プロバイダ(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固有データ プロバイダ [#kaf99732]

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

**Oracle [#e86b81c5]
***Oracle用.NETデータ プロバイダ(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がリリースされたようです。

--Oracle Client(ODP.NET)を手っ取り早くインストールする方法について - 素敵なおひげですね~
http://stknohg.hatenablog.jp/entry/2014/10/24/074303
>ODP.NET Managed DriverはOracle 12cになって登場したフルマネージドのODP.NETドライバです。

--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

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

**HiRDB [#aa9b1539]
***HiRDB用.NETデータ プロバイダ(pddndp20.dll) [#j4ee843d]
-配列バインドをサポート
-型指定、サイズ指定が必須

**MySQL [#k23406ba]
***MySQL用.NETデータ プロバイダ(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]]を参照。

**PostgreSQL [#dad19e08]
***PostgreSQL用.NETデータ プロバイダ(Npgsql .Net Data Provider for Postgresql) [#h5093e53]

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

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

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

MDACとともにインストールされる[[COM]]インターフェイスのデータプロバイダ。
-サンプルなどはインターネット上から検索できる。

-[[COM]]インターフェイスを持つため、~
VB6、VBA、VBScriptなどからデータアクセスする場合に使用する。
**DAO [#v4d4289f]
主に Jet接続に用いられるが、ODBC接続も可能。

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

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

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

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

--[FILE] ODBC、OLEDB、ADO、RDS での接続文字列の~
-[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社のリリースしたADOに対抗するカスタムのデータプロバイダ。~
Oracle社のリリースしたカスタムのデータプロバイダ。~
#OO4Oは、Oracle Objects for OLEの略称

-[[COM]]インターフェイスを持つため、~
VB6、VBA、VBScriptなどからデータアクセスする場合に使用する。

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

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

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

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

従って、今後、新規のOO4O採用は推奨されない(VB6、VBA、VBScript等からはADOを使用する)。
従って、今後、新規の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/#8
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

*GPLについて。 [#ac4107c2]
-オープンソースと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の条件は課されない。


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS