金曜日, 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!知恵袋
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!知恵袋