2011-03-27 111 views
2

我想爲數據庫創建ODBC DSN(只要用戶設置應用程序,該數據庫將包含在我的應用程序文件夾中)。我想知道如何使用所有必需的參數創建ODBC,以便在安裝程序運行時完成的第一件事是將數據庫連接到應用程序。我曾嘗試使用默認的VB.NET安裝嚮導和Installshield。使用VB.NET創建ODBC DSN

回答

1

我不知道通過安裝程序或VB.NET創建DSN的任何方法,但使用Windows實用程序可以創建一個。

this頁面展示如何使用命令行實用程序odbcconf所以一旦你創建一個批處理腳本,可以根據自己的應用需求創建DSN在Windows中創建DSN,您可以觸發該批次之前把你的安裝文件複製到執行用戶電腦。因此,腳本執行後,應用程序安裝將進一步複製剩餘的文件,並且在安裝完成後,應用程序啓動後,由於現在創建了DSN,因此與DSN的連接將按預期工作。雖然我沒有使用過InstallShield,但是我對NSIS的經驗表明,通過安裝程序執行批處理腳本將在安裝過程中啓動命令提示符窗口,這可能不是您想要的。

避免顯示命令提示符窗口的另一種方法是在應用程序第一次運行之前(在靜默模式下)執行批處理腳本,然後建立與數據庫的任何連接。您可以使用WScript.Shell對象執行批處理文件(.bat),而不顯示命令提示符窗口,如下所示。

Dim batfile As String 

batfile = "C:\Program Files\Your App\YouDSNCreationBatchFile.bat" 

Set WshShell = CreateObject("WScript.Shell") 

cmds = WshShell.RUN("""" & batfile & """", 0, True) 'All Quotes are necessary if file path contains folders with spaces in thier names 

Set WshShell = Nothing 

雖然odbcconf也可以在VB直接用於創建DSN,但如果你不想調整你的應用程序代碼在連接之前創建DSN,使用批處理腳本將是一個故障安全解決方案,然而,正如我猜想的那樣,你可能已經在try區塊中連接了你的應用程序,所以如果你捕捉到由於缺乏DSN可用性而引發的異常,則可以再次調用該批處理腳本來創建一個或提示用戶。

!!重要提示:正如MSDN頁所述,odbcconf實用程序可能會從未來版本的Windows數據訪問組件中刪除,如果長期使用此方法,則應重新考慮此方法。