Delphi XE3 オラクルクライアント64bitでのエラー

解決


グー助  2013-03-23 03:28:02  No: 44097

開発環境
      Windows8  Pro(64bit)
      DelphiXE3
      オラクルクライアント(11gR2)64bit
において、設計時にTSQLConnectionをコネクトすると
「DBXエラー:ドライバを正しく初期化できませんでした。クライアントライブラリが見つからない、正しくインストールされていない、バージョンがまちがっているのいずれか、あるいは、ドライバがシステムパスに含まれていない可能性があります。」
というメッセージが出ます。

dbxora.dllの問題かと思い、
C:\Program Files (x86)\Embarcadero\RAD Studio\10.0\bin64\Dbxora.dll
のdbxora.dllを
C:\Program Files (x86)\Embarcadero\RAD Studio\10.0\bin\dbxora.dll
へコピーすると
「dbxora.dlを読み込めません(エラーコード193)。システムパスに含まれていない可能性があります。」
とエラーが出ます。

色々とググってみましたが解決に至りません。。。。
どなたか解決方法ご存知の方いらっしゃいませんか?


DEKO  2013-03-23 05:14:51  No: 44098

> dbxora.dllの問題かと思い、
> C:\Program Files (x86)\Embarcadero\RAD Studio\10.0\bin64\Dbxora.dll
> のdbxora.dllを
> C:\Program Files (x86)\Embarcadero\RAD Studio\10.0\bin\dbxora.dll
> へコピーすると

64bit 用のドライバを 32bit 用ドライバに上書きしちゃってますよ、コレ。
これは元に戻して下さい。

DB のクライアント DLL のある場所にパスを通せば OK です。
クライアント DLL を $(BDS)\bin に放り込んじゃダメです。パスを通して下さい。

  ...

64bit OS 上の場合でも、IDE での設計時は 32bit DBX4 ドライバが使われます。
IDE が 32bit アプリケーションなのでそうなります。
故に DB のクライアント DLL も 32bit のものが使われます。

実行時 / デバッグ実行時には 64bit DBX4 ドライバが使われます。
つまり、64bit OS 上で設計時にも実行時にも DBX 接続するのであれば、
32bit / 64bit クライアントのいずれも正常に接続できるようにしなくてはなりません。

[20th-B4: dbExpress とマルチプラットフォーム開発」
http://edn.embarcadero.com/jp/article/images/41633/b4.pdf


グー助  2013-03-23 08:15:52  No: 44099

DEKO様。ご回答ありがとうございます。

>32bit / 64bit クライアントのいずれも正常に接続できるようにしなくてはなりません。

オラクルクライアントの32bit版をインストールで無事動作しました。

IDE が 32bit ということをすっかり忘れていました。

ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加