「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -戻る --[[ADO.NET]] --[[データプロバイダ]] * 目次 [#je117dc1] #contents *概要 [#p227ab20] 以下、専用API型のADO.NETデータプロバイダの種類を列挙する。 *汎用 .NETデータ プロバイダ [#p63e7daa] -APIレイヤのみの提供。 -下位のドライバを選択できる。 -選択したドライバによって動きが変わる。 -.NET同梱のため、別途ラインタイムのインストールが不要。 **OLE DB [#ha886c89] ***System.Data.OleDb [#c6dd7162] -.NET同梱のため、別途ラインタイムのインストールが不要。 -下位のOLEドライバを選択できる。 ***参考 [#q83b27bd] -OLE DB の概要~ https://msdn.microsoft.com/ja-jp/library/Dd148548.aspx **ODBC [#gf94818e] ***System.Data.Odbc [#y0beb592] -.NET同梱のため、別途ラインタイムのインストールが不要。 -下位のODBCドライバを選択できる。 ***参考 [#jd55ecdc] -ODBC の概要~ https://msdn.microsoft.com/ja-jp/library/Cc948698.aspx -ODBC の基礎~ https://msdn.microsoft.com/ja-jp/library/thzzea08.aspx **OLE DBとODBCの選択 [#zd12cac3] ***サマリ [#pb55ee79] -結局、SQL Server 2014でまだ廃止されていないようですが、~ Accessなどの他のマイクロソフト製品でOLE DBの~ サポート打ち切りは始まってきているようです。 -...と思ったら、2018 年に~ 「OLE DB の非推奨が取り消し」となり、~ 新バージョンがリリースされました。 ***参考 [#m0ddd73a] -Microsoft SQLNCli team blog --Microsoft is Aligning with ODBC for Native Relational Data Access~ https://blogs.msdn.microsoft.com/sqlnativeclient/2011/08/29/microsoft-is-aligning-with-odbc-for-native-relational-data-access/ --Announcing the new release of OLE DB Driver for SQL Server~ https://blogs.msdn.microsoft.com/sqlnativeclient/2017/10/06/announcing-the-new-release-of-ole-db-driver-for-sql-server/ *DBMS固有 .NETデータ プロバイダ [#kaf99732] **SQL Server [#z6a38476] ***System.Data.SqlClient [#pf5917d3] .NET同梱のため、別途ラインタイムのインストールが不要。 ***参考 [#ee39ce57] -System.Data.SqlClient 名前空間 | Microsoft Docs~ https://docs.microsoft.com/ja-jp/dotnet/api/system.data.sqlclient **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 ***ODP.NET Managed Driver [#e9de2377] 最近マネージドのOracleクライアント不要のODP.NETがリリースされた(Instant Clientよりさらに楽)。~ 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 -古いODP.NETは、 --[[Oracleクライアントとのバージョン不一致や32/64bit不一致>WOW64#x8197aae]]~ などで動かないなどのトラブルがよく起きるためサポートが面倒。 --なるべく早く、Oracle Instant ClientやODP.NET, Managed Driverに乗り換えたほうが良い。 --なるべく早く、ODP.NET, Managed Driverに乗り換えたほうが良い。 ***参考 [#va8514cf] -[[Oracle11gXE + ODP.NET Managed Driver>#f006f0be]] -OracleのODP.NETのフェッチサイズと配列バインド~ が強力だという話。 - OSSコンソーシアム~ https://www.osscons.jp/jo1pgfhtx-537/#_537 **PostgreSQL [#dad19e08] ***Npgsql ADO.NET Data Provider for PostgreSQL [#h5093e53] Postgresqlで主流の.NETデータ・プロバイダ ***dotConnect for PostgreSQL [#b80f40c1] 一応、[[Npgsql>#h5093e53]]以外の選択肢(実績は聞いたこと無し)。 ***参考 [#r76ed033] -Npgsql --[[PostgreSQL + NpgSql>#x9f678bc]] --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 -dotConnect --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]]を参照。 ***参考 [#p69284e0] [[MySQL + Connector/NET]] **DB2 [#s07d659e] ***IBM Data Server Provider for .NET [#m120bf15] 純正、DB2 .NETデータ プロバイダ ***dotConnect for DB2 [#sf2a5ee7] dotConnect系(実績は聞いたこと無し) **HiRDB [#aa9b1539] ***pddndp20.dll [#j4ee843d] 純正 -配列バインドをサポート -型指定、サイズ指定が必須 ***参考、3rd [#c76de2e1] 情報なし。 *その他 [#gdc22972] **GPLライセンス [#ac4107c2] [[コチラ>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?OSS%E3%81%AE%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9#a090cc67]]に移動しました。 **コネクション・プーリング [#f61acf4f] ***概要 [#gc5c34c3] コネクション・プーリング(接続プール)は、 -接続を再利用することで性能向上を図る仕組み。 -この機能は、ADO.NETデータプロバイダが提供する。 -通常、既定で有効になっている。接続文字列などでconfigする。 -[[ベース クライアント セキュリティ モデルでは利用不可>リソース アクセス ストラテジ#xbea5cc0]]。 ***参考 [#xc0d3686] -[[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 *参考 [#t5954b91] **[[.NET Core]]のデータプロバイダ [#a51ecd81] 「.NET同梱」と書いてあるモノも、~ [[.NET Core]]に関しては、NuGetから取得する。 **[[ADO.NET以外のデータプロバイダ]] [#b3b449f1] 昔の[[VB6、VBA、VBScript>Visual Basic]]などからデータアクセスする際に使用するデータプロバイダ **CX's Hello, World! [#ac462f0e] -ADO.NET~ http://cx20.main.jp/blog/hello/category/ado-net/ **構築 [#dc6e443a] ***[[Oracle11gXE + ODP.NET Managed Driver]] [#f006f0be] ***[[PostgreSQL + NpgSql]] [#x9f678bc] ---- Tags: [[:データアクセス]], [[:ADO.NET]]