将旧应用程序重新指向新的oracle主层次结构

时间:2014-02-27 14:01:10

标签: oracle vb6 oracle11gr2 oracle-home

我正在开发2台虚拟机来测试新平台上的遗留应用程序功能,其中包括操作系统和操作系统。数据库升级。在新客户端(Win7Prox64)上测试的应用程序是用VB6编写的。 (它已经很老了!)当应用程序启动时,它会打开一个允许用户登录的表单。 它连接到的旧数据库是Server2003SP2 32位盒上的11G,应用程序运行在32位XP客户端上。 (用于测试的新服务器的新VM是2008R2x64)。

旧应用程序声明了以下内容:(“frmLogin.frm”) (该应用程序通过为这些Const指定正确的目录路径来检查注册表的tnsnames位置)

Private Const MODULE_NAME = "frmLogin"
Private Const REG_APP_KEY = "Software\ORACLE\HOME"
Private Const REG_APP_PATH = "Oracle_Home"
Private Const REG_ALL_HOMES = "Software\Oracle\ALL_HOMES"
Private Const REG_LAST_HOME = "LAST_HOME"
Private Const REG_MYAPP_KEY = "Software\company\myapp"
Private Const MYAPP_APP_KEY = "Database Host Name"

我假设我必须将这些常量更改为11GR2找到的新层次结构,以使其正常工作,如何检查和更新这些常量?我不确定它只是改变上面的目录那么容易,但我可能是错的。

欢迎任何提示。

编辑:我注意到Win7 64注册表项上的11GR2与XP 32bit和11G有很大不同。布局和内容都有。例如,LAST_HOME在Win7上似乎不存在任何建议吗?

我将对tnsnames.ora位置的引用硬编码到应用程序中,并且我知道它在新的64位客户端上运行(并且似乎运行良好),但我无法为每个客户端计算机对其进行硬编码将驻留在,所以需要正确地重新指向目录。

1 个答案:

答案 0 :(得分:0)

您必须浏览HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_***中的每个注册表项,因为一个系统上可能有多个安装。

转到注册表中的HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE,然后检查每个子密钥是否以KEY_开头。 (如果你不关心,请选择第一个,如果你不关心,请选择每一个)

在这些按键中,您会找到:

  • TNS_ADMIN,即将保存tnsnames.ora的偏离位置;
  • ORACLE_HOME您需要将network\admin附加到通常会找到tnsnames.ora的地方。