WIN7でUDLを使ってORACLEに接続するとエラーが発生!


くるみ  2010-08-30 17:52:56  No: 102535  IP: [192.*.*.*]

こんにちは。

UDLを使ってORACLEに接続するプログラムをVB6で作成し
XPでは問題なく接続出来たのですが、
WIN7(x64)では以下のオープン時に "プロバイダが見つかりません。"と
エラーが表示されます。 

 DIM Con As New ADODB.Connection
 Con.ConnectionString = "File Name=C:\Oracle.UDL;"
 Con.Open

ただ、UDLのデータリンクプロパティの
接続テストではエラーにならず接続出来ています。

ちなみにXPにはOracle9i、WIN7にはOracle11gの
クラインアントをインストールしています。

何が原因(WIN7? x64? Oracle?) で
エラーになっているのか分からず困っています…
どなたか教えて頂けないでしょうか。
宜しくお願い致します!

編集 削除
魔界の仮面弁士  2010-08-30 18:05:52  No: 102536  IP: [192.*.*.*]

> WIN7(x64)では以下のオープン時に "プロバイダが見つかりません。"と
> エラーが表示されます。 
32bit 用のライブラリがインストールされていないとか。

> Con.ConnectionString = "File Name=C:\Oracle.UDL;"
C: の直下に配置するのは止めた方が良いかと。特に UAC が有効な場合には。

> ただ、UDLのデータリンクプロパティの
> 接続テストではエラーにならず接続出来ています。
そのテストは、どのように行った物でしょうか?
PromptEdit メソッド経由での評価でしょうか?
http://www.gizcollabo.jp/vbtomo/boards/vbdatabase_spread_554.html

もしもデスクトップに *.udl ファイルを置いて試した物だとすれば、
それは 64bit モードでの動作になりますので、32bit モードとは
異なる結果になる可能性があります。

編集 削除
くるみ  2010-09-01 10:13:52  No: 102537  IP: [192.*.*.*]

ご回答頂いていたのに返信が遅くなり、
申し訳ありませんでした。

>32bit 用のライブラリがインストールされていないとか。
32bit用のライブラリがインストールされているかどうかを
確認するにはどの様にしたらいいのでしょうか。

>C: の直下に配置するのは止めた方が良いかと。
UDLをC:の直下以外に移動しましたが、同じエラーになりました。

>そのテストは、どのように行った物でしょうか?
エクスプローラでUDLをダブルクリックし、
表示されたデータリンクプロパティ(Microsoftデータリンク??)の
接続テストボタンを押下して行いました。

最近プログラムの開発を始めたばかりで知識がなく
ご回答頂いた内容に関して
おかしな返答をしているかも知れません…すみません。
宜しくお願いします!

編集 削除
魔界の仮面弁士  2010-09-01 14:14:51  No: 102538  IP: [192.*.*.*]

> 32bit用のライブラリがインストールされているかどうかを
> 確認するにはどの様にしたらいいのでしょうか。
インストールした時の Oracle Client のディスク表面に、
ターゲットプラットフォームが書かれていたと思います。
たしか、Windows (32-bit) とか Windows x64 とか。

既にインストール済みのコンポーネントについては、
Oracle Universal Installer から確認してみてください。

# 実際にどのように表示されるかは、手元に X64 な 11g Client 端末が
# 無いので確認できませんが。。。

> エクスプローラでUDLをダブルクリックし、
その方法では、64bitの検証しかできないと思います。
http://blogs.msdn.com/b/chaitanya_medikonduri/archive/2008/04/09/how-to-run-32-bit-udl-file-on-a-64-bit-operating-system.aspx

編集 削除