Inno setup 在Inno安装程序中运行Sql server脚本以使用cmd更新数据库
我正在使用Inno setup所做的设置更新sql server数据库。 我用cmd编写这一行命令Inno setup 在Inno安装程序中运行Sql server脚本以使用cmd更新数据库,inno-setup,Inno Setup,我正在使用Inno setup所做的设置更新sql server数据库。 我用cmd编写这一行命令 sqlcmd -s myserverName -U sa -P MyPass -d myDataBase -i scriptAddress 它工作正常,我想在Inno设置中也这样做,并编写这行代码 procedure UpdateDataBase; var Param:String; Kode : integer; FileName :String; begin InstanceNam
sqlcmd -s myserverName -U sa -P MyPass -d myDataBase -i scriptAddress
它工作正常,我想在Inno设置中也这样做,并编写这行代码
procedure UpdateDataBase;
var
Param:String;
Kode : integer;
FileName :String;
begin
InstanceName:= DEF_INSTANCENAME;
InstancePass:= DEF_DBPASSWORD;
DataBaseName:= DEF_DATABASENAME;
serverName:= 'SINA-PC\RMPRO';
FileName:= 'C:\Update2008to2018.sql';
Param:= ' sqlcmd -S '+ServerName+' -U sa -P '+ InstancePass+ ' -d '+ DataBaseName+ ' -i '+
FileName;
if Exec('cmd.exe',param ,'', SW_SHOW, ewWaitUntilTerminated,kode) then
begin
showMessage('Tamam');
end;
结束
但是在调用这个过程之后,我有一个空的cmd窗口。我应该怎么做您可能应该直接调用
sqlcmd.exe
,而不是作为cmd.exe
的参数。因此,您应该有如下内容(尚未测试,但应该开始):
是否可以将sqlcmd作为parameter@sina你为什么要那样做?“mirtheil提出的是正确的方法。”MartinPrikryl在一个奇怪的情况下,我不能在win 7上运行sqlcmd,当我在上面写的行中使用cmd时,一切都很好,我认为这样在大多数pc上应该可以毫无问题地运行,但是如果使用Innosetup更新数据库的任何好的、稳定的方法都能帮到我,那么meIt必须是
参数:='/c sqlcmd-S'.
——但这没有意义。
pgm := 'sqlcmd.exe';
Param := '-S '+ServerName+' -U sa -P '+ InstancePass+ ' -d '+ DataBaseName+ ' -i '+ FileName;
if Exec(pgm, param, '', SW_SHOW, ewWaitUntilTerminated, kode) then
begin
MsgBox('Done.', mbInformation, MB_OK);
end;