トップページへ PASSJ ブログへ
トップページへ
分科会
特集!
コミュニケーション
資格
セミナー・コンファレンス
インフォメーション



Webテクノロジー ボードリーダー:小川 貢

毎月第2、第4木曜日はボードリーダーからのレポートを掲載いたします。
 
   

2002年10月10日
『ADO.NET / .NET Data Provider』

皆さん、.NET Framework を使ってますか?
私は Web Service の仕事をやって、こんなに楽なんかと実感しています。
# Java の Web Service も実装しましたが、.NET Framework というか VS.NET
#での実装に比べると、非常に大変でした。

さてさて、今回は ADO.NET の .NET Data Provider について書きたいと思い ます。
いろいろな ML を見てますと、ADO.NET のことを混同されている方が多く見ら れます。

いままでの ADO の場合は OLE DB Provider がそれぞれのデータソースの差を 吸収してくれていました。

ADO -+-> OLE DB Provider for SQL Server -> SQL Server
|
+-> OLE DB Provider for ODBC -> ODBC Driver -> データソース
|
+-> Jet X.XX OLE DB Provider -> MDB
...etc

アプリケーション側では ADO の統一的な処理を記述するだけでよかったので、 ( OLE DB Provider の実装によりますが)OLE DB Provider を切り換えるだ けで、さまざまなデータソースにアクセスできました。

しかし、ADO.NET の場合はそれぞれのデータソースに応じた .NET Data Provider を使用してアクセスする必要があります。

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconadonetproviders.asp

今までの ADO が利用していた OLE DB Provider を使用する場合は System.Data.OleDb 名前空間にあるクラスを使用します。
※ ODBC はサポートされていません!!

言わずと知れた SQL Server 用の .NET Data Provider は System.Data.SqlClient 名前空間にあるクラスを使用します。

ODBC の場合は System.Data.OleDb 名前空間を使用せず、 Microsoft.Data.ODBC 名前空間 を使用します。
ODBC .NET Data Provider はデフォルトでは用意されていませんので、別途ダ ウンロードが必要です。

http://msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/msdn-files/027/001/668/msdncompositedoc.xml

と大きく違うことがわかります。

では、これらを意識しないで済むやり方が存在しないのか?という疑問が沸い てくると思います。

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpcontheadonetcommonmodel.asp

ここに有る通り、やり方は存在しますが、個々の .NET Data Provider 固有の 記述があり、コーディングで注意する必要があります。
例えば、OLE DB .NET Data Provider の場合はパラメータには ? としますが、 SQL Server .NET Data Provider の場合は @名前 というように記述が違って いますので。

また、既存の ADO アプリケーションのマイグレーションにも注意が必要です。
VB.NET では VB 6 のソースをマイグレーションできますが、このマイグレー ションで行われることは ADO などの .NET Framework 上ではアンマネージド な OLE テクノロジーを .NET Framework 上で利用できるラッパが生成され、 それによって動作するようになります。
ですので .NET Framework ネイティブな .NET Data Provider を使った ADO.NET に完全移行するには自前でプログラムの修正が必要になるということ も忘れないでください。

最後に、余談ではありますが、Oracle 用の .NET Data Provider も MS は用 意しています。

http://www.msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/msdn-files/027/001/940/msdncompositedoc.xml


ボードリーダーレポート トップページへ

 

 
PASSJメールニュース 著作権ついて プライバシーポリシー リンクポリシー お問い合わせ
(C) 2005 Professional Association for SQL Server Japan. All rights reserved.