tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトル64ビット版でのエラー
記事No14822
投稿日: 2010/07/21(Wed) 11:47
投稿者たかゆき
いつもお世話になっております。

VB歴 = 3年程
OS   = Win2003Server X64

目的 = Win2003Server X64に配置しているVB6.0からWin2003Server X86のオラクルDB
    に接続したい

OSをWin2003サーバの32ビット版から64ビット版に変更しましたところ、
違うサーバにインストールされている
オラクルDBへ接続が出来なくなってしまいました。

エラーメッセージは【プロバイダが見つかりません】と表示されます。
接続方法は以下の通りです。

          ーーーーーーー記ーーーーーーー

    Set Con = CreateObject("ADODB.Connection")
   stConnectionString = stConnectionString & "Provider=OraOLEDB.Oracle.1;"
    stConnectionString = stConnectionString & "Data Source=XE;"
    stConnectionString = stConnectionString & "User Id=oracle;"
    stConnectionString = stConnectionString & "Password=oracle;"

    ' データベース接続を開く
    Con.Open (stConnectionString) ←ここでエラーになります

          ーーーーーーー以上ーーーーーーー


OSには【Oracle Provider For OLE DB】が入っている事は確認済みです。
ちなみに【.Net】からは接続出来ましたが、
vb6.0は64ビットに対応していないのでしょうか?

どうぞ何卒宜しく御願い申し上げます。

[ツリー表示へ]
タイトルRe: 64ビット版でのエラー
記事No14823
投稿日: 2010/07/21(Wed) 12:41
投稿者魔界の仮面弁士
> vb6.0は64ビットに対応していないのでしょうか?
VB6 製アプリは WOW64 での動作となります。

> OSには【Oracle Provider For OLE DB】が入っている事は確認済みです。
64bit 版と 32bit 版の両方の OraOLEDB.Oracle が入っているのに
失敗するようであれば、アプリケーションの配置パスを確認してみて下さい。

たとえば、C:\Program Files(x86) のように、フォルダ名やファイル名に
丸括弧が含まれていた場合、Oracle への接続は失敗します。


> ちなみに【.Net】からは接続出来ましたが、
それは x64 ビルドでしょうか。x86 ビルドでしょうか。AnyCPU ビルドでしょうか。

[ツリー表示へ]
タイトルRe^2: 64ビット版でのエラー
記事No14824
投稿日: 2010/07/21(Wed) 13:29
投稿者たかゆき
> > vb6.0は64ビットに対応していないのでしょうか?
> VB6 製アプリは WOW64 での動作となります。
WOW64をウィキペディアで調べたのですが、イマイチ理解出来ませんでした。
つまり動かすには何か足りないと言う事でしょうか?
勉強不足で申し訳御座いません。

> > OSには【Oracle Provider For OLE DB】が入っている事は確認済みです。
> 64bit 版と 32bit 版の両方の OraOLEDB.Oracle が入っているのに
> 失敗するようであれば、アプリケーションの配置パスを確認してみて下さい。
>
> たとえば、C:\Program Files(x86) のように、フォルダ名やファイル名に
> 丸括弧が含まれていた場合、Oracle への接続は失敗します。
C:\Program Files(x86)フォルダを見ても、何が必要なのか判りません。
こちらも勉強不足で申し訳御座いませんが、確認すべきフォルダやファイル名を
ご存知であれば御教示願えますでしょうか?

私の確認方法は、【test.udl】という拡張子のファイルをデスクトップに作成し、
プロバイダ一覧で表示されているからで御座います。

> > ちなみに【.Net】からは接続出来ましたが、
> それは x64 ビルドでしょうか。x86 ビルドでしょうか。AnyCPU ビルドでしょうか。
x86ビルドです。

勉強不足で誠に申し訳御座いません。
安易に聞いてしまい、本当に申し訳有りませんが、
具体的な解決方法を御教示して頂けると助かります。

宜しく御願い申し上げます。

[ツリー表示へ]
タイトルRe^3: 64ビット版でのエラー
記事No14825
投稿日: 2010/07/21(Wed) 15:02
投稿者魔界の仮面弁士
> > > vb6.0は64ビットに対応していないのでしょうか?
> > VB6 製アプリは WOW64 での動作となります。
> WOW64をウィキペディアで調べたのですが、イマイチ理解出来ませんでした。
一種のエミュレータです。

たとえば 32bit 環境(Win9x や 2000 など)においては、
古い 16bit 用のアプリケーション(MS-DOS 用や Windows 用)を
動作させる事ができますよね。それと同じような物です。

VB6 アプリは 32bit 専用アプリですので、Windows 2003 Server(x64)で
動かした場合、WOW64 という「仮想的な32bit環境」上で
自動的に実行される事になります。特別な設定等は不要です。


なお注意点として、64bit OS 上においては
 C:\Windows\System32\
 C:\Program Files\
などは 64bit 専用であり、32bit アプリでは
 C:\Windows\sysWOW64\
 C:\Program Files(x86)\
が利用される事に注意して下さい。通常、この切り替えは自動的に行われますが、
プログラムでパスを決め打ちするような行儀の悪いアプリでは、この違いが
問題になることがあります。


> > > OSには【Oracle Provider For OLE DB】が入っている事は確認済みです。
どのバージョンをお使いでしょうか?

また、インストールされている Oracle Client は
32bit 版でしょうか。64bit 版でしょうか。
それとも両方をインストールされているのでしょうか。


> C:\Program Files(x86)フォルダを見ても、何が必要なのか判りません。
Oracle 用アプリケーションは、『)』を含まないパスに置いてください、という事です。
OCI のバージョンにもよるのかもしれませんけれども。
http://blog.yaju.jp/200703/article_8.html


> 私の確認方法は、【test.udl】という拡張子のファイルをデスクトップに作成し、
> プロバイダ一覧で表示されているからで御座います。
表示されているという事と、インストールが完了している事は別物です。

[ツリー表示へ]
タイトルRe^4: 64ビット版でのエラー
記事No14826
投稿日: 2010/07/21(Wed) 17:52
投稿者たかゆき
魔界の仮面弁士 様

返信有難う御座います。

WOW64につきまして、
御丁寧に説明して頂きまして、有難う御座います。
理解できました。

> > > > OSには【Oracle Provider For OLE DB】が入っている事は確認済みです。
> どのバージョンをお使いでしょうか?
>
> また、インストールされている Oracle Client は
> 32bit 版でしょうか。64bit 版でしょうか。
> それとも両方をインストールされているのでしょうか。
64bit版のみインストール済みです。
ちなみに両方インストールしても問題ないですか?
その場合、ディレクトリは上書きではなく(Client_1、Client_2のように)
別ディレクトリにインストールで宜しいでしょうか?

> > C:\Program Files(x86)フォルダを見ても、何が必要なのか判りません。
> Oracle 用アプリケーションは、『)』を含まないパスに置いてください、という事です。
> OCI のバージョンにもよるのかもしれませんけれども。
> http://blog.yaju.jp/200703/article_8.html
プログラムは確認しましたが、直接パスは切っておりませんでした。


> > 私の確認方法は、【test.udl】という拡張子のファイルをデスクトップに作成し、
> > プロバイダ一覧で表示されているからで御座います。
> 表示されているという事と、インストールが完了している事は別物です。

なるほど・・・ちなみにオラクルクライアントもインストール済みではありますが、
プログラムの追加と削除には表示されておりません。
他に別のやり方で確認は可能でしょうか?

[ツリー表示へ]
タイトルRe^5: 64ビット版でのエラー
記事No14827
投稿日: 2010/07/21(Wed) 22:37
投稿者魔界の仮面弁士
> > それとも両方をインストールされているのでしょうか。
> 64bit版のみインストール済みです。
VB6 は 32bit 専用であるため、64bit の DLL は呼び出せません。
32bit クライアントを導入して下さい。

> ちなみに両方インストールしても問題ないですか?
もはや VB の質問では無く、Oracle の質問になってしまっているような…。

x64 上での 32bit クライアントの動作は、完全にサポートされるバージョンもあれば
限定サポートになっているバージョンもあります。この場で問題点を列挙するわけにも
いきませんので、詳細はサポートにご確認ください。

> なるほど・・・ちなみにオラクルクライアントもインストール済みではありますが、
> プログラムの追加と削除には表示されておりません。
Oracle は、Java を用いた独自のインストーラーを採用している関係で、
一部の機能は、Windows 標準のプログラムの追加と削除には掲載されません。

代わりに、Oracle Universal Installer (OUI) を用いて確認してください。

[ツリー表示へ]
タイトルRe^6: 64ビット版でのエラー
記事No14828
投稿日: 2010/07/22(Thu) 12:01
投稿者たかゆき
魔界の仮面弁士 様

返信有難う御座います。

> VB6 は32bit専用であるため、64bitのDLLは呼び出せません。
> 32bit クライアントを導入して下さい。
了解しました、32bit用を入手したので試してみます。

> Oracle は、Javaを用いた独自のインストーラーを
> 採用している関係で、一部の機能は、
> Windows標準のプログラムの追加と削除には掲載されません。
> 代わりに、Oracle Universal Installer (OUI)を
> 用いて確認してください。
了解しました、調べてみます。

現在サーバー本体を移設中の為、今すぐ試す事は出来ませんが、
教えて頂いた情報を元に再度チャレンジしてみます。
誠に有難う御座います。

[ツリー表示へ]