- - PR -
ADO.NET でODBC接続方法に関して
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-08-29 11:33
ADO.NETを利用してODBC接続を行いたいのですが、質問があります
接続の方法でADODB.ConnectionとOdbcConnectionを利用する場合でどのように違うのかが判りません。 ADODB.Connectionの接続例 Dim objCon As ADODB.Connection Dim objRec As ADODB.Recordset Dim strSQL As String Dim lngExeCount As Long objCon = CreateObject("ADODB.Connection") objCon.Open("DSN=ODBC_NAME;UID=userid;PWD=password") strSQL = "SELECT * FROM table1" objRec = objCon.Execute(strSQL, lngExeCount) OdbcConnectionの接続例 Imports System.Data.Odbc Dim conn As OdbcConnection Dim cmd As OdbcCommand Dim reader As OdbcDataReader conn = New OdbcConnection("DSN=ODBC_NAME") conn.Open() cmd = New OdbcCommand("SELECT * FROM table1", conn) reader = cmd.ExecuteReader() どちらでも接続できるのですが、どっちを利用していいのか判っていません。 ご存知の方がいらっしゃれば、ご教授願います | ||||||||||||
|
投稿日時: 2006-08-29 11:46
はて?ADODBなんてCOMでしょ。
昔の遺産じゃん。ADO.NETじゃない。 ADO.NETのODBCを選ぶだろうけどODBCよりかOleDBを選ぶかな。 | ||||||||||||
|
投稿日時: 2006-08-29 13:50
ぶさいくろうさん、ありがとうございます。
回答をいただいた後でいろいろと調べてみたのですが、いまいちよく理解できませんでした もう少し教えていただけますでしょうか? ・ADODBは昔の遺産と言うことですが、現在であれば使わないほうがいいということですね? ・ADO.NETのODBCと言われているのは、私がサンプルで書いたOdbcConnectionの接続例のことを指しているのでしょうか? oledbでサンプルを作ってみたのですが、プロバイダの指定方法がわかりませんでした、 プロバイダには何を設定すればいいのでしょうか? Imports System.Data.OleDb Dim conn As OleDbConnection Dim strDSN As String Dim cmd As OleDbCommand Dim strSQL As String strDSN = "Data Source=tera;User ID=dwhrun;Password=dwhrun;" conn = New OleDbConnection(strDSN) conn.Open() strSQL = "SELECT * FROM table1" cmd = New OleDbCommand(strSQL, conn) いろいろと質問して申し訳ございませんが、今回はODBCでしか接続できない環境ですので どのような接続方法が一番適しているのかお知恵をお貸しください。 | ||||||||||||
|
投稿日時: 2006-08-29 14:32
すでに出ているように、ADODB は COM ですから使わない方が良いですね。 VB6 は参照カウント法で管理していたため、相性は良かったのですが、 同じ VB でも VB7 (VB2002) 以降の相性は最悪と思っても差し支えないでしょう。 COM を利用する場合は、自分ですべての参照を管理する必要があります。 非常に面倒くさい上に危険が伴うこともあります...
System.Data.* 以下の名前空間のテクノロジを ADO.NET と言います。 System.Data.Odbc.OdbcConnection クラスも当然 ADO.NET テクノロジです。
'何に' 接続するかによります。 また、プロバイダは調べればすぐ見つかりますよ。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-08-29 15:40
じゃんぬねっとさん、どうもありがとうございます
ADODBに関しては判りました。 oledbのプロバイダに関して調べていたところ http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/cpref/html/frlrfsystemdatasqlclientsqlconnectionclasstopic.asp ODBC データ ソースにアクセスするには、 OdbcConnection オブジェクトを使用します。このオブジェクトは、System.Data.Odbc 名前空間に存在します。 とありました。 今回はODBCでしか接続できないのですがOdbcConnectionでいいのでしょうか? また、OleDbConnectionの場合のプロバイダは、udlファイルを作成してみたところ Microsoft OLD DB Provider for ODBC Driversとありました(udlでの接続テストは成功しています)がこのことでいいのでしょうか? 質問ばかりで申し訳ございませんが、何卒ご教授願います。 | ||||||||||||
|
投稿日時: 2006-08-29 15:49
どうもリンク先が違うような... こちらをご覧になった方がわかりやすいと思います。
実際に試した結果を信じるのが 1 番良いのではないでしょうか? 何を使用するのかは、Natsume さんが決めるべきことだと思いますよ。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-08-29 21:20
じゃんぬねっとさん、どうもありがとうございました。
どの方式にするかは、もう少し試してみます。 また、別件なんですが質問よろしいでしょうか? ODBCで接続プールを利用したいので,調べていると http://msdn2.microsoft.com/ja-jp/library/ms254502.aspx 接続プール機能を有効または無効にするには、[コントロール パネル] の [管理ツール] フォルダにある [ODBC データ ソース アドミニストレータ] を開きます。[接続プール] タブで、インストールされている各 ODBC ドライバに対する接続プール パラメータを指定できます。ODBC ドライバの接続プールを変更すると、その ODBC ドライバを使用するすべてのアプリケーションに影響します。 とありました、確かにODBCの設定画面のパフォーマンスモニタを有効にすればいいということだと思いますが、合っていますでしょうか? | ||||||||||||
|
投稿日時: 2006-08-29 21:37
残念ながら違います。 パフォーマンス モニタは、その名前どおりでプーリングとは関係ありません。 困った時や迷った時は、まずヘルプを見てみましょう。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |