我正在使用inno为ms sql脚本编写安装包。我有以下代码:
strParam := '-U hel -P password -S ServerName -d test -Q "sp_test"';
try
Exec('sqlcmd.exe', strParam, '', SW_SHOW, ewWaitUntilTerminated, ResultCode);
result := ResultCode = 0;
except
Exec('osql.exe', strParam, '', SW_SHOW, ewWaitUntilTerminated, ResultCode);
result := ResultCode = 0;
end;
Sp执行正常,但是sqlcmd.exe的黑屏正在挂起,直到我输入exit或关闭它。我希望在sp执行后关闭sqlcmd.exe的窗口。
答案 0 :(得分:0)
您似乎首先尝试使用sqlcmd,然后使用osql作为备份,如果Exec
抛出。文件告诉我,这根本不起作用;你需要if not Exec('sqlcmd', ...) then
,
除此之外,我们专门为我们的sql更新使用osql,并且从未遇到过它没有终止的问题。如果您没有充分的理由投资两个单独的SQL更新程序,只需使用效果更好的程序。如果那恰好是osql,那就这样吧。
答案 1 :(得分:0)
我今天遇到了这个。我的回答是我有许多不同版本的SQL命令和SQL程序文件。我为旧版本提出了一个路径声明,它开始工作