自适应服务器8个注册表设置

时间:2013-11-29 11:52:23

标签: windows-7 registry windows-xp inno-setup sybase-asa

我有一个在asa8数据库上运行的应用程序。我使用inno-setup编译安装文件。我正在寻找样本inno-setup代码来输入注册表中的ODBC条目。我根据以下帖子提出了我目前的逻辑。

Adaptive server anywhere ASA SqlAnywhere 8.0 ODBC driver

目前,我已进入[注册表]部分下的inno-setup文件:

[Registry]

;ASA DB drivers

Root: HKLM; Subkey: "SOFTWARE\ODBC\ODBCINST.INI\Adaptive Server Anywhere 8.0"; Flags: uninsdeletekeyifempty

Root: HKLM; Subkey: "SOFTWARE\ODBC\ODBCINST.INI\Adaptive Server Anywhere 8.0"; ValueType: string; ValueName: "Driver"; ValueData: "{app}\dbodbc8.dll"

Root: HKLM; Subkey: "SOFTWARE\ODBC\ODBCINST.INI\Adaptive Server Anywhere 8.0"; ValueType: string; ValueName: "Setup"; ValueData: "{app}\dbodbc8.dll"

Root: HKLM; Subkey: "SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers"; ValueType: string; ValueName: "Adaptive Server Anywhere 8.0"; ValueData: "Installed"


;ODBC entry

Root: HKLM; Subkey: "SOFTWARE\ODBC\ODBC.INI\LOADCON"; Flags: uninsdeletekeyifempty

Root: HKLM; Subkey: "SOFTWARE\ODBC\ODBC.INI\LOADCON"; ValueType: string; ValueName: 
"AutoStop"; ValueData: "Yes"

Root: HKLM; Subkey: "SOFTWARE\ODBC\ODBC.INI\LOADCON"; ValueType: string; ValueName: 
"DatabaseFile"; ValueData: "{app}\db_loadcon\loadcon.db"

Root: HKLM; Subkey: "SOFTWARE\ODBC\ODBC.INI\LOADCON"; ValueType: string; ValueName: "Driver"; ValueData: "{app}\dbodbc8.dll"

Root: HKLM; Subkey: "SOFTWARE\ODBC\ODBC.INI\LOADCON"; ValueType: string; ValueName: "Integrated"; ValueData: "NO"

Root: HKLM; Subkey: "SOFTWARE\ODBC\ODBC.INI\LOADCON"; ValueType: string; ValueName: "PWD"; ValueData: "sql"

Root: HKLM; Subkey: "SOFTWARE\ODBC\ODBC.INI\LOADCON"; ValueType: string; ValueName: "UID"; ValueData: "dba"

所有这些在WINXP(32位)中工作正常(排序)。它在Win7(64位)中不起作用。有人可以显示适用于32位和64位操作系统的创建代码。我知道注册表中的WOW6432Node,并知道WIN7中有64位和32位ODBC数据源管理器。我知道32位ASA8 ODBC连接只能通过位于C:\ Windows \ SysWOW64 \文件夹中的ODBCAD32.exe进行。我摆弄了inno-setup代码但没有成功。我现在需要某人的专家意见。

另外,当我在WINXP上运行上面的inno-setup代码时,它会在注册表中创建一个ODBC条目,但不会在实际的ODBC数据源管理器GUI中显示该条目。但是ODBC连接有效。关于如何在GUI中显示连接的任何想法?

1 个答案:

答案 0 :(得分:0)

您需要确保LOADCON条目也列在注册表中的HKLM\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources下,以便在GUI中显示。 (例如"LOADCON" ="Adaptive Server Anywhere 8.0"

至于32/64问题,请将相同的密钥安装到\SOFTWARE\Wow6432Node\ODBC\ODBC.INI\SOFTWARE\Wow6432Node\ODBC\ODBC.INI\ODBC Data Sources(我会使用复制/粘贴和修改Inno文件中的密钥)。它的美妙之处在于,如果您在32位系统上安装64位密钥,它们就会被忽略。

查看此方法的一种方法是在64位系统上手动创建ODBC条目。您需要运行64位版本的ODBC数据源管理员(odbcad32.exe中常见的C:\Windows\SysWOW64)。手动创建条目后,请查看HKLM\SOFTWARE\Wow6432Node\ODBC部分中的注册表。