DOBON.NET DOBON.NETプログラミング掲示板過去ログ

Provider for OLE DB について

環境/言語:[Win 2000 Pro]
分類:[.NET]

こんばんは
質問したいことがありましてよろしくお願いします。
今回VB.NETでOracleへの接続を試みているのですが
なぜかうまくいきません。
ボタンをクリックした時に下記が実行されます。

Dim cn As New OleDb.OleDbConnection
Dim cm As New OleDb.OleDbCommand

cn.ConnectionString = "provider=MSDAORA; 
      user id=●●●; 
      password=●●●; 
      data source=●●●"

cn.Open()

とコーディングしているのですがオープンのところで
落ちてしまいます。エラーメッセージ?として
"Oracleよりエラーを取得できませんでした"
とでます。
Microsoft provider for OLE DB を使用するには
何か特別な事をしないといけないのでしょうか?
ちなみに.NET Frameworkは1.1です。
何卒よろしくお願い致します。
こんにちは、じゃんぬねっと です。

■No9244に返信(こうさんの記事)
> cn.ConnectionString = "provider=MSDAORA; 
>       user id=●●●; 
>       password=●●●; 
>       data source=●●●"

provider のタイプは合っていますでしょうか?
http://homepage2.nifty.com/inform/vbdb/

# DAO? (^-^?)
>>cn.ConnectionString = "provider=MSDAORA; 
そこで指定されたユーザ/パスワード/サーバ名で、
1. SqlPlusから接続できるかどうか。
2. データ リンク ファイルから接続できるかどうか。
も確認してみてください。

なお、データ リンク ファイルは、0バイトのファイルを用意しておき、
拡張子をudlにすれば作成できます。ダブルクリックで設定画面になります。

接続完了後は、UDLファイル内に、接続文字列が(Unicodeテキストで)記述されます。


> # DAO? (^-^?)
MSDAORA は、『Microsoft Data Access - OLE DB Provider for Oracle』の意味ですね。
じゃんぬねっとさん 魔界の仮面弁士さん
お返事ありがとうございます大変参考になりました。

> 1. SqlPlusから接続できるかどうか。
接続の方は問題なく出来ています。

> 2. データ リンク ファイルから接続できるかどうか。
データリンクファイルからの接続なのですが
Microsoft OLE DB provider for Oracle
Microsoft OLE DB provider for ODBC Drivers

にして接続情報を入力し、”接続のテスト”をクリックして
も下記エラーメッセージ出力されます。

”プロバイダの初期化中にエラーが発生したため接続のテスト
 に失敗しました。Oracleエラーが発生しましたが、エラーメ
 ッセージはOracleから取得できませんでした。”

とデータリンクエラーとなってしまいます。
ちなみに他のマシーンで同じ事をすると全く問題
なく動作します。(前に記述したコーディングも)

何かわかる点があればよろしくお願いします。

こう
魔界の仮面弁士さんの質問、
>1. SqlPlusから接続できるかどうか。
はどうでしたか?
これが通らないとなると、リスナー設定、TNS設定、ネットワーク設定など他の問題がある可能性があります。
確認してみてください。
こんにちは、じゃんぬねっと です。

■No9249に返信(こうさんの記事)
> 接続の方は問題なく出来ています。

> データリンクファイルからの接続なのですが
> データリンクエラーとなってしまいます。
> ちなみに他のマシーンで同じ事をすると全く問題
> なく動作します。(前に記述したコーディングも)

ちなみに Oracle のバージョンは?
その問題の端末に入っている現在の Oracle をインストールする前に、
別のバージョンの Oracle は入っていませんでしたか?

もしそうであれば、Universal Installer からアンインストールしてから、インストールしましたか?
他の端末では大丈夫となると、疑わしいのはそれくらいでしょうか。

■No9248に返信(魔界の仮面弁士さんの記事)
> MSDAORA は、『Microsoft Data Access - OLE DB Provider for Oracle』の意味ですね。

弁さん、ごめんなさい。
何か寝ぼけていました。(^-^A)
ファイル名やパスに、括弧「(」「)」が使われていると
Oracleへの接続に失敗するという話がありましたが、
UDLからも接続できないとなると、別の理由っぽいですね……。


>> 2. データ リンク ファイルから接続できるかどうか。
> データリンクファイルからの接続なのですが
> Microsoft OLE DB provider for Oracle
> Microsoft OLE DB provider for ODBC Drivers

Microsoft製のOracleプロバイダではなく、
Oracle製のOracleプロバイダ(Oracle Provider for OLE DB)でも、
同じ現象になりますか?

他のBBSで、こんな話がありましたので。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=17558&forum=7&2

あとは、ODP.NETで接続できるかどうかを試してみるとか。
# 今からクラスを変更可能であれば、ですけど。


> ちなみに他のマシーンで同じ事をすると全く問題
> なく動作します。(前に記述したコーディングも)
それぞれの環境で、Oracle Clientのバージョンや
MDACのバージョンに、違いはありませんか?

DOBON.NET | プログラミング道 | プログラミング掲示板