2009-09-15 54 views
1

傳統上,我的客戶端軟件通過進入「管理工具」並手動創建新的ODBC連接來強制配置ODBC源。安裝時創建ODBC設置?

有沒有辦法在安裝過程中配置新的ODBC連接?

在相關說明中,是否有一種方法可以捕獲用於此理論過程的現有ODBC連接?

回答

1

我已經使用了Nullsoft的安裝程序當天回來,他們有一些示例腳本。

http://nsis.sourceforge.net/Create_an_ODBC_entry_for_a_MS_Access_database http://nsis.sourceforge.net/Check_whether_an_ODBC_entry_exists

基本上你寫正確的值到註冊表:HKEY_LOCAL_MACHINE 「SOFTWARE \ ODBC \ ODBC.INI \ ODBC數據源」 包含在你的包裝軟件

使用註冊表工具。

您正在用?和什麼類型的數據庫?

+0

它用於爲傳統應用程序部署一個ODBC連接到SQL數據庫,該應用程序使用ADO來執行我們尚未完全更新的幾個操作。 – 2009-09-15 22:37:51

+0

我會在測試框上手動創建連接,然後從測試機器的註冊表中導出相應的條目。將其保存爲部署的一部分。然後使用安裝程序的助手(或命令行)在安裝過程中導入該樹。 – 2009-09-15 23:45:22

1

是的,有。整個ODBC對象都存儲在註冊表中。你只需要創建一些註冊表設置。

我假設如果你仍然使用ODBC,那麼你堅持使用Microsoft Access。以下是Access的一些示例設置。如果您的供應商不同,請告訴我們,我們也會爲您提供幫助。

說你的ODBC連接名稱是MyODBC的這些例子。

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources 
Key: "MyODBC" 
Value: "Microsoft Access Driver (*.mdb)" 

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC 
Key: "FIL" 
Value: "MS Access;" 

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC 
Key: "Driver" 
Value: "$SYSDIR\odbcjt32.dll" 

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC 
Key: "Description" 
Value: "Description you'd like your users to see in Control Panel" 

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC 
Key: "UID" 
Value: The Access UserName if any. This is optional. 

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC 
Key: "DBQ" 
Value: The installation directory/YourDB.mdb 

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC 
Key: "SafeTransactions" 
Value: "00000000" 

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC 
Key: "DriverID" 
Value: "00000019" 

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC\Engines\Jet 
Key: "Threads" 
Value: "00000003" 

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC\Engines\Jet 
Key: "ImplicitCommitSync" 
Value: "" 

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC\Engines\Jet 
Key: "UserCommitSync" 
Value: "Yes" 

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC\Engines\Jet 
Key: "PageTimeout" 
Value: "00000005" 

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC\Engines\Jet 
Key: "MaxBufferSize" 
Value: "00000800" 

當然,您使用的安裝程序將確定如何創建這些安裝程序。

+0

這也很重要,因爲它明顯定義了系統上的ODBC驅動程序。 – 2009-09-15 22:30:43

0

回答我的問題...

每個ODBC配置文件中發現:

HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI 

該配置文件包含以下內容:

[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\<ODBC PROFILE NAME>] 
"Driver"="C:\\WINDOWS\\system32\\SQLSRV32.dll" 
"Server"="<ODBC PROFILE DSN>" 
"LastUser"="<LAST USER TO ACCESS ODBC (probably for lock)>"