NSIS SQL соединение - PullRequest
       22

NSIS SQL соединение

3 голосов
/ 23 марта 2012

При установке с помощью моего установочного скрипта NSIS мне нужно запустить какой-нибудь скрипт на SQL Server: выбрать, обновить, создать и вставить.

Как я могу это сделать, не имея движка SQL Server на компьютере, на котором запущенУстановщик NSIS?

Я думал о том, чтобы упаковать SQL Server Compact Edition в мой установщик, чтобы использовать его для подключения к SQL Server.Это тот путь, по которому я должен идти?

Ответы [ 2 ]

6 голосов
/ 23 марта 2012

Вам не нужен механизм 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 .

2 голосов
/ 23 марта 2012

Я нашел плагин для 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
...