2012-03-23 17 views
3

私のNSISインストーラスクリプトを使用してインストールする際、SQL Server上でselect、update、createおよびinsertのスクリプトを実行する必要があります。NSIS SQL接続

NSISインストーラを実行しているコンピュータにSQL Serverエンジンをインストールせずに、どうすればいいですか?

私はSQL Serverに接続するためにSQL Server Compact Editionをインストーラにパックすることを考えました。それは私が行くべき道か?

答えて

2

私はMS SQLデータベースに接続することができます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 
+0

あなたが質問をすることが禁止されている場合は、あなたは[何ができますか - 私たちは長く受け入れられない質問-2](http:// meta。 stackexchange.com/questions/86997/)を慎重にお読みください。 –

6

あなたはクエリを実行するSQL Serverエンジンを必要としませんリモートマシンでは、ドライバが必要です。

1つの方法は、ネイティブドライバも必要なコマンドラインクライアントを使用することです。おそらく、あなたのアプリケーションがあなたのインストーラで使用するドライバをバンドルしたり検索したりしたいと思うかもしれません。

SQL Server 2005以降では、コマンドラインクライアントは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_ 

このアプローチのSQL 2000のバージョンがnsis wikihereを見つけることができます。