我正在开发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位客户端上运行(并且似乎运行良好),但我无法为每个客户端计算机对其进行硬编码将驻留在,所以需要正确地重新指向目录。
答案 0 :(得分:0)
您必须浏览HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_***
中的每个注册表项,因为一个系统上可能有多个安装。
转到注册表中的HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
,然后检查每个子密钥是否以KEY_
开头。 (如果你不关心,请选择第一个,如果你不关心,请选择每一个)
在这些按键中,您会找到:
TNS_ADMIN
,即将保存tnsnames.ora的偏离位置; ORACLE_HOME
您需要将network\admin
附加到通常会找到tnsnames.ora的地方。