2012年5月28日月曜日

複数のODPをインストールした環境において、特定のバージョンのODPを使用したいときの設定

VB.netを使用して、Oracleにアクセスする場合、ODPを使用することが多いと思われます。
複数のODPをインストールした環境において、特定のバージョンのODPを使用したいときの設定について記載します。


ODP.NET
(Oracle Data Provider for .NET   Microsoft .NET環境からOracleデータベースへネイティブに接続可能なミドルウェア)


結論から書くと、以下の2点を対処すれば解決します。
 ①パスの設定を目的のバージョンのODPに修正して、
 ②VB.netで参照するライブラリの参照設定を①と同じにする。


具体的には、
②は文字通りなので、割愛。
①については、少々手作業が発生するので説明。



パスの現在の設定を以下の方法で確認します。
Pathを設定する
http://blog.cnu.jp/2009/11/06/windows-7-path/


【確認結果の例】
C:\app\username\product\11.2.0\client_1\bin;C:\app\username\product\11.1.0\client_1\bin;C:\Program Files\Common Files\Microsoft Shared\Windows Live;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\W~(以下略)


上記の場合、以下の2つのバージョンのODPがインストールされていることになります。
「C:\app\username\product\11.2.0\client_1\bin;」
「C:\app\username\product\11.1.0\client_1\bin;」

そして、パスの設定は、前が優先なので、常に11.2.0を使用することになります。
(よくあるパターンとしては、VB.netでは11.1.0のライブラリを参照しているのに、実行時はエラーが出る!という事象)

もし、 11.1.0のODPを使用したいのであれば、
「C:\app\username\product\11.1.0\client_1\bin;」を前に持ってくるか、
「C:\app\username\product\11.2.0\client_1\bin;」を削除すれば解決です。


Windows7くらいになると、Pathの設定もわかりやすくGUI設定できるとよいのでしょうが、確かにそれは難しいのかもしれませんね。

0 件のコメント:

コメントを投稿