无法执行文件: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 函数。
我做了一个设置,其中我的功能直接在 [运行] 部分中 运行。此设置 运行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 函数。