Google
 
Web itpro-blogger.blogspot.com
金曜日, 2月 18, 2011

[ORACLE]VBで9iと10gの混在はできない。

▼質問
VBで作った9iで動いているoo4o接続のアプリケーション環境に

10gで動いているアプリケーションを入れようとしたんだが

うまく動かないんだ。

どうしたら良いか教えてくれ!

▼回答
oo4oは、クライアントに複数のバージョンをインストールできても

混在して使うことはできないんだ。

だから、アプリケーション側がoo4o接続のバージョンを統一する

必要があるんだ。

(oo4oを1つのクライアントに複数バージョンインストールすることは
出来ませんので、新規に新たなOracle Clientをインストールする場合に、
既にインストールされているoo4oを削除する必要があります。)


■参考サイト
OTN Japan - 意外と簡単!? .NETでOracle:スマートクライアント編

既存バージョンからのアップグレード注意点

oo4oは、一台のクライアントに対して、一つのORACLE_HOMEのみ対応します。すなわち、
1台で使用できるバージョンは1つのみで複数バージョンは使用できません。
また、Oracle Database 10gからは、新たなORACLE_HOMEにoo4oをインストールすると、
レジストリが書き換えられ、それ以前にインストールされたoo4oバージョンは使用できません
のでご注意ください。

注意:Oracle Database 10gより前のoo4oのバージョンを導入する際には、一度既存のoo4oを
削除した上で、再度インストールすることが必要になります。

再コンパイルが必要な場合

アーリー・バインディングを使用している場合のコードは以下のようになります。

Dim OraSession As New OraSessionClass
Dim OraDatabase As OraDatabase
Set OraDatabase = OraSession.OpenDatabase("orcl", _
 "scott/tiger", dbOption.ORADB_DEFAULT) <アーリー・バインディングを使用した場合のコード>

参照設定を行わずにoo4oを使用している場合(レイト・バインディング)のコードは以下のようになります。

Dim OraSession As Object       ''セッション・オブジェクト
Dim OraDatabase As Object      ''データベース・オブジェクト
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase = OraSession.OpenDatabase("orcl", "scott/tiger", 0&)<参照設定を行わずにoo4oを使用しているコード(レイト・バインディング)>

レイト・バインディングを使用してコンパイルされたモジュールは、再コンパイルせずに動作可能ですが、
確実に移行作業を行うために、再コンパイルしていただくことを推奨しております。



oracle9iとoracle10gのクライアントの併用について - Yahoo!知恵袋


This page is powered by Blogger. Isn't yours?