C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: SQL、Oracleを問わないデータアクセス


(過去ログ 117 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■68928 / inTopicNo.1)  SQL、Oracleを問わないデータアクセス
  
□投稿者/ Djokovic (3回)-(2013/11/25(Mon) 16:43:33)

分類:[.NET 全般] 

VB 6.0から、いきなり.net VB 2010を使用し始めました超初心者です。よろしくお願い致します。

.net VB 2010を使用し、ADOでSQL ServerとOracleのサーバから、データを取り出したいのですが
データソースを問わないような、サンプルが紹介されているサイトがありましたら
教えてください。

とにかく超初心者です。
できましたら、初心者向けサイトをよろしくお願い致します。


引用返信 編集キー/
■68936 / inTopicNo.2)  Re[1]: SQL、Oracleを問わないデータアクセス
□投稿者/ Jitta (109回)-(2013/11/25(Mon) 22:31:51)
Jitta さんの Web サイト
No68928 (Djokovic さん) に返信
 「Oracle、SQL Server を問わない」の意図を教えてください。
ご存じだと思いますが、DBMS によって SQL に方言があります。
これは、各 DBMS 向けに作成しなければなりません。
# まぁ、簡単な問い合わせなら、方言はないと思いますが。
# 「簡単」をどのように定義するか、にもよるかな。

 方言部分を差し替え可能なように作れば、DBMS を問わない実装ができます。


> とにかく超初心者です。
 何の、初心者でしょうか。
データベース?コンピュータ?プログラムを作ること?VB?
それぞれによって、求められる物が違うと思いますが、いかがでしょうか。
「全部」ということであれば、まずは本を薦めます。
体系的に整理されているからです。
引用返信 編集キー/
■68941 / inTopicNo.3)  Re[1]: SQL、Oracleを問わないデータアクセス
□投稿者/ daive (18回)-(2013/11/25(Mon) 22:57:56)
2013/11/25(Mon) 23:02:58 編集(投稿者)

一通り網羅しているサイトであれば、
検索ワード: やさしい VB2010
で、
http://adonetvb.com/index.html
http://adonetvb.com/
http://adonetvb.com/Learning/index.html
あたりが、関連サイト含めて、
一連で、MDB / MS-SQL / VB.NET 2008 / 2010 などを
解説しています。
VB.NETや、MS-SQL、JET-MDB を解っている方であれば、2〜7日で、一通り終わる筈です。
(やさしいサイトですが、環境構築さえ出来ない方、文法等が解っていない方には、向きません。)

超簡単なサンプルであれば、
検索ワード:10行でズバリ

>VB 6.0から、いきなり.net VB 2010を使用し始めました超初心者です。よろしくお願い致します。

まずは、ここの(WANKUMAさん)の、↑:C#とVB.NET入門、DOBON.NET さんの、NET Tips 他からでしょうか。

http://jeanne.wankuma.com/

http://dobon.net/


MS-SQL Server 自習書シリーズ:マイクロソフトの解説書(WEB)
【Oracle Database 2日で.NET開発者ガイド 】:わかっている人向け(WEB)

書籍は、技術系専門書の書店が近くに無い場合は、
図書館へかなぁ。
(大全本は、検索ワードを探す為の本と割り切れば、使い物になります。)

DBのサイト、書籍は、「ミック」と「データベース」を検索ワードに
探してみてください。
引用返信 編集キー/
■68943 / inTopicNo.4)  Re[1]: SQL、Oracleを問わないデータアクセス
□投稿者/ 魔界の仮面弁士 (429回)-(2013/11/25(Mon) 23:56:17)
No68928 (Djokovic さん) に返信
> VB 6.0から、いきなり.net VB 2010を使用し始めました超初心者です。
VB6 は経験されているのですね。
では、VB6 ユーザー向けの視点で回答してみます。


> データソースを問わないような、サンプルが紹介されているサイトがありましたら
サイトや書籍の紹介等は daive さんがされているので、これについては割愛。


> .net VB 2010を使用し、ADOでSQL ServerとOracleのサーバから、データを取り出したいのですが
ADO ではなく、ADO.NET を使うことになります。(ADO と ADO.NET は別物です)

VB6 時代の「ADO」(ADODB とか ADOX とか ADOR とか JRO とか ADOMD とか)も使えなくはありませんが、
ADO は COM(ActiveX)ベースの接続方法であり、VB.NET からの利用は推奨されていないためです。


ADO.NET で基本となるのは、下記のクラスです。

★DataTable クラス … 表構造とデータを管理する器。SELECT した結果を格納するためなどに使われます。
★DataSet クラス … 複数の DataTable を管理する器。テーブル間のリレーションも保持できます。
★DataView クラス … DataTable に対して、並び替えや条件抽出を行った状態のオブジェクトです。

たとえば DataGridView なら、DataSource にこれらのオブジェクトを渡してやると、
取得したデータが画面に表示され、ユーザーがデータを編集できるようになります。


これら DataSet/DataTable/DataView は、データベースとは無関係の中立的なクラスです。
実際にデータベースとやり取りする部分には、その DB ごとのクラスが必要です。


その DB 固有の部分についてですが、Oracle への接続に使えるものとしては、
おもに下記のものがあります。

・System.Data.OracleClient 名前空間 … Microsoft 製。VB2010 以降では非推奨です。
・Oracle.DataAccess.Client 名前空間 … Oracle 製。通称 ODP.NET。開発環境と実行環境で同じバージョンを参照する必要があります。
・Microsoft.Data.Odbc 名前空間 … ODBC 接続用の ADO.NET プロバイダ。.NET 1.x 用であり、現在は廃止されています。
・System.Data.Odbc 名前空間 … ODBC 接続用の ADO.NET プロバイダ。.NET 2.0 以降ではこちらを使います。
・System.Data.OleDb 名前空間 … OLEDB 接続用の ADO.NET プロバイダ。VB6 の OLE DB Provider に相当します。


いずれを使っても良いですが、Microsoft 製の ODBC ドライバーや、System.Data.OracleClient などは
できれば避けてください。
http://msdn.microsoft.com/ja-jp/data/gg607261.aspx

基本的には、Oracle 社が提供している ODP.NET や ODBC ドライバー、あるいは、
DataDirect 等のサードパーティ製品で接続されることをお奨めします。


一方、SQL Server 用としてはこのあたり。

・System.Data.SqlClient 名前空間 … SQL Server 接続用の ADO.NET プロバイダ。
・Microsoft.Data.Odbc 名前空間 … ODBC 接続用。先に書いたように、VB2010 では使えません。
・System.Data.Odbc 名前空間 … ODBC 接続用。SQL Server 用の ODBC ドライバーと併用して使います。
・System.Data.OleDb 名前空間 … OLEDB 接続用。接続文字列は、ADODB のものと基本的に同じです。

SQL Server 専用とするなら SqlClient、汎用にしたいなら Odbc を選ぶとよいでしょう
(Jitta さんが書かれているように、DB 固有の機能や SQL についての考慮は必要ですが)

ちなみに、ADODB にしても ADO.NET にしても、OLE DB 経由での接続は、
SQL Server 2012 を最後に打ち切られることになるようです。
http://technet.microsoft.com/ja-jp/library/hh510181.aspx
http://www.infoq.com/jp/news/2011/09/OLE-DB-End
http://news.mynavi.jp/news/2011/09/01/083/



で、これらの名前空間に対して、主に以下のクラスを使うことになります。

★何某Connection クラス … ADODB でいうところの Connection オブジェクトに相当。
★何某Command クラス … ADODB でいうところの Command オブジェクトに相当。
★何某DataReader クラス … ADODB で言えば、ReadOnly + ForwardOnly の Recordset に相当。
★何某DataAdapter クラス … DataSet との中継役。VB6 には近い物が無いですが、強いて言えば、DataEnvironment あたり。


「何某」と書いているのは、実際に使われるクラスが、
System.Data.SqlClient.SqlConnection や
Oracle.DataAccess.Client.OracleConnection などであるためです。

DB ごとにクラスが違っていると、処理を共通化しにくいように思われるかもしれませんが、
これについては、System.Data.Common 名前空間の抽象クラスを使うことで、データベースに
依存しないようなコードを記述することが可能です。
http://code.msdn.microsoft.com/windowsdesktop/DataAccess-howto-3afceb90
引用返信 編集キー/
■68994 / inTopicNo.5)  Re[2]: SQL、Oracleを問わないデータアクセス
□投稿者/ Djokovic (5回)-(2013/11/27(Wed) 18:02:31)
Jittaさま
daiveさま
魔界の仮面弁士さま

遅くなりましたが、親切ご丁寧にありがとうございます。
本当にありがとうございます。<(__)>

教えて頂いたサイトを見て、それから質問と思っていましたが、分からないことばかりで収拾がつかなくなってしまいました。

とりあえずここで一旦クローズさせて頂き、再度別で質問させて頂きます。

ありがとうございます。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -