在inno包中运行sql语句后sqlcmd.exe挂起

时间:2011-10-18 12:51:07

标签: inno-setup sqlcmd

我正在使用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的窗口。

2 个答案:

答案 0 :(得分:0)

您似乎首先尝试使用sqlcmd,然后使用osql作为备份,如果Exec抛出。文件告诉我,这根本不起作用;你需要if not Exec('sqlcmd', ...) then

除此之外,我们专门为我们的sql更新使用osql,并且从未遇到过它没有终止的问题。如果您没有充分的理由投资两个单独的SQL更新程序,只需使用效果更好的程序。如果那恰好是osql,那就这样吧。

答案 1 :(得分:0)

我今天遇到了这个。我的回答是我有许多不同版本的SQL命令和SQL程序文件。我为旧版本提出了一个路径声明,它开始工作