无法执行文件:CreateProcess 失败;代码87.The参数不正确

Unable to Execute File: CreateProcress Failed; Code 87.The Paramete is incorrect

我做了一个设置,其中我的功能直接在 [运行] 部分中 运行。此设置 运行s 数据库脚本。它 运行 没问题,但是当它完成时会抛出 "Unable to Execute File: CreateProcress Failed; Code 87.The Paramete is incorrect".

导致此错误的原因是什么以及如何解决?

我的创新代码:

[Files]
Source: "E:\SQLInstallTEST\Scripts\RCabSoft.sql"; DestDir: {app}; Flags: ignoreversion

[Run]
Filename: "{code:SqlScript}";

[Code]

function SqlScript(Value: string): string;
var
  ResultCode: Integer;
  OutputText: String;

begin

        if FileExists(ExpandConstant('{pf32}\Microsoft SQL Server0\Tools\Binn\VSShell\Common7\IDE\SSMS.exe')) then
            begin        
              ExtractTemporaryFile('RCabSoft.sql');        

              // Execute SQL Update Scripts        
                Exec('SqlCmd.exe', ' -e -E -S .' + ExpandConstant(' -i "{app}\RCabSoft.sql"'), '', SW_SHOW, ewWaitUntilTerminated, ResultCode);         
                MsgBox('Successful', mbInformation, MB_OK);          
       end;
end; 

快照:

看来您实际上并没有从 SqlScript 函数返回字符串,即您没有写入内置 Result 变量。

此外,您应该使用 [Run]Exec,但不能同时使用两者,因为两者都是 运行 可执行文件。

(来自我下面的评论)[Run] 部分试试这个:

Filename: "SqlCmd.exe"; Parameters: "-e -E -S . -i {app}\RCabSoft.sql"; Check: FileExists(ExpandConstant('{pf32}\Microsoft SQL Server0\Tools\Binn\VSShell\Common7\IDE\SSMS.exe'))

并完全删除 SqlScript 函数。