2012-03-23 112 views
3

使用我的NSIS安裝程序腳本安裝時,我需要在SQL Server上運行一些腳本:選擇,更新,創建和插入。NSIS SQL連接

如何在沒有運行NSIS安裝程序的計算機上安裝SQL Server引擎的情況下執行此操作?

我想過要將SQL Server Compact Edition打包到我的安裝程序中,以便使用它連接到SQL Server。那是我應該去的方式嗎?

回答

2

我發現NSIS一個插件,可以連接到MS SQL數據庫:MSSQL_OLEDB_plug-in

可以使用這樣的:

${OLEDB}::SQL_Logon "$SQLSERVER" "$SQLUSER" "$SQLPASSWORD" 
${OLEDB}::SQL_Execute "$SQLQUERY" 
${OLEDB}::SQL_GetError 
${OLEDB}::SQL_GetRow 
Pop $0 
DetailPrint $0 
Pop $0 
DetailPrint $0 
${OLEDB}::SQL_Logout 
+0

當你被禁止問問題時,你應該閱讀[我能做什麼 - 什麼時候得到 - 抱歉 - 我們不再接受 - 問題2](http:// meta。 stackexchange.com/questions/86997/)。 – 2013-03-23 03:20:41

6

您不需要SQL Server引擎進行查詢在遠程機器上,您需要一個驅動程序。

一種方法是使用命令行客戶端,它也需要本地驅動程序。您可能想要捆綁或搜索應用程序在安裝程序中使用的驅動程序。

在SQL Server 2005或更高版本中,命令行客戶端被稱爲sqlcmd。它可以從功能包下載頁面(2005 | 2008 | 2008R2 | 2012)下載。

所以它只是簡單地將SQL腳本與安裝程序捆綁在一起,並通過調用sqlcmd與ExecWait來執行腳本。

sqlcmd -S _SERVER\_INSTANCE_ -d _DBNAME_ -i _SCRIPT_FILE_ 

或者用SQL登錄:

您可以通過使用受信任的連接運行腳本

sqlcmd -S _SERVER\_INSTANCE_ -d _DBNAME_ -U _USERNAME_ -P _PASSWORD_ -i _SCRIPT_FILE_ 

一個SQL 2000版本的這種方法可以在nsis wiki找到here