1

asa8 データベースで実行するアプリケーションがあります。インストールファイルをコンパイルするために inno-setup を使用しています。レジストリに ODBC エントリを入力するサンプルの inno-setup コードを探しています。以下の投稿から現在のロジックに基づいています。

Adaptive server どこでも ASA SqlAnywhere 8.0 ODBC ドライバー

現在、[registry] セクションの下の 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 (64bit) では動作しません。誰かが 32 ビット OS と 64 ビット OS の両方で動作する inno-setup コードを示すことができますか? レジストリの WOW6432Node を認識しており、WIN7 に 64 ビットと 32 ビットの ODBC データ ソース アドミニストレータがあることを知っています。32 ビット ASA8 ODBC 接続は、C:\Windows\SysWOW64\ フォルダーにある ODBCAD32.exe を介してのみ確立できることを認識しています。inno-setup コードをいじりましたが、うまくいきません。今、誰かの専門家の意見が必要です。

また、上記の inno-setup コードを WINXP で実行すると、レジストリに ODBC エントリが作成されますが、実際の ODBC データ ソース アドミニストレータ GUI にはエントリが表示されません。ただし、ODBC 接続は機能します。接続を GUI に表示する方法について何か考えはありますか?

4

1 に答える 1

0

LOADCONエントリがHKLM\SOFTWARE\ODBC\ODBC.INI\ODBC Data SourcesGUI に表示されるようにするには、レジストリの下にもリストされていることを確認する必要があります。(例"LOADCON" ="Adaptive Server Anywhere 8.0")

32/64 の問題については、同じキーを\SOFTWARE\Wow6432Node\ODBC\ODBC.INIとにインストールします\SOFTWARE\Wow6432Node\ODBC\ODBC.INI\ODBC Data Sources(Inno ファイルのキーをコピー/貼り付けして変更します)。その優れた点は、32 ビット システムに 64 ビット キーをインストールすると、それらが無視されることです。

これを確認する 1 つの方法は、64 ビット システムで ODBC エントリを手動で作成することです。64 ビット バージョンの ODBC データ ソース アドミニストレータ (odbcad32.exe通常は にありますC:\Windows\SysWOW64) を実行する必要があります。エントリを手動で作成したら、セクションのレジストリを確認してくださいHKLM\SOFTWARE\Wow6432Node\ODBC

于 2013-12-17T22:35:24.657 に答える