初めて投稿します。
Delphi5+Oracle8+oo4oで開発を行っているのですが、自分のマシンでは
ちゃんと処理ができて動作しているのですが、このプログラムを他のマシンに
もっていき動作させようとするとEoleErrorクラス例外でバリアントオート
メーションオブジェクトを参照していないとのメッセージがでてしまい処理が
中断してしまいます。
メッセージが出る場所はOracleに接続しようとしているところで発生してい
ます。
objOraSession :=
CreateOleObject('OracleInProcServer.XOraSession'); ←ここででます。
objOraDatabase :=
objOraSession.OpenDatabase[strDBName,strUserName + '/' + strPassword, 0];
新しく動作させようとしたマシン単体ではOracleにはsql*plusで接続確認は
取れているのですが、プログラムから起動したときにエラーになってしまい
ます。
たぶん環境の問題と考えているのですが手詰まりになってしまいました。
すみませんがどなたか教えてください。
Oracleのバージョン違いとかでしょうか。
似たような現象を聞いたことがあります。
8と8iの両方をインストールしたことありませんか?
にしのさん、返信ありがとうございます。
Oracleのバージョン等を調べてみたのですがバージョンは
同じみたいです。
ちなみにoo4oのバージョンも同じでした。
もし、Oracleのバージョン等違っていた場合、プログラムの記述とか
変わってくるのでしょうか?
何が原因なのか検討がつかないです。
とりあえず、Delphiの環境設定等を見直してみます。
Oracle8とOracle8iでは、oo4oの扱いが少し変わるらしいです。
人づてで聞いたので確認してませんが・・・。
他に考えられるとしたら、レジストリが壊れていないか、Javaがインストールされていないか(Oracleは、自分で持つJavaで動く)。
他はちょっと思い当たりません。
Javaであれば、PATHからJDKのパスを消してみてください。
その際、再起動が必要になるかもしれません。
Javaも頻繁に使うのであれば、コマンドプロンプトのショートカットを作り、PATHにJDKのパスを設定するBATファイルを作成し実行させてください。
今回のOSはXPだったのですがそれ以外のマシンで動作確認
したところ多少設定が違っていたところもありましたが
なんとか動作することができました。
おそらく、レジストリが壊れている可能性が高いかと
思われます。
私のマシンではないのでなんともいえませんがとりあえず
他のマシンでは動作確認がとれましたのでそちらのマシン
でやっていきます。
ありがとうございました。
ツイート | ![]() |