2012-03-23 113 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