我有一个在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中显示连接的任何想法?
答案 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
部分中的注册表。