使用NSIS安装程序脚本进行安装时,我需要在SQL Server上运行一些脚本: select、update、create和insert。
如果运行NSIS安装程序的计算机上没有SQL Server引擎,我如何才能做到这一点?
我考虑过将SQL Server Compact Edition打包到我的安装程序中,以便使用它连接到SQL Server。那是我应该走的路吗?
发布于 2012-03-23 22:32:01
我找到了一个可以连接到MS数据库的NSIS插件: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发布于 2012-03-23 23:12:39
在远程计算机上执行查询不需要SQL Server引擎,只需要一个驱动程序。
一种方法是使用命令行客户端,这也需要本机驱动程序。您可能希望捆绑或搜索应用程序在安装程序中使用的驱动程序。
在SQL Server2005或更高版本中,命令行客户端称为sqlcmd。可从功能包下载页面(2005|2008|2008R2|2012).下载
因此,它只需将SQL脚本与安装程序捆绑在一起,并通过使用ExecWait调用sqlcmd来执行脚本。
您可以通过以下方式使用可信连接运行脚本:
sqlcmd -S _SERVER\_INSTANCE_ -d _DBNAME_ -i _SCRIPT_FILE_或使用SQL登录:
sqlcmd -S _SERVER\_INSTANCE_ -d _DBNAME_ -U _USERNAME_ -P _PASSWORD_ -i _SCRIPT_FILE_这种方法的SQL2000版本可以在nsis wiki上的here中找到。
https://stackoverflow.com/questions/9840397
复制相似问题