我想.bak
在 InnoSetup 中恢复一个 SQL Server 备份文件。
这是我使用的代码:
try
ExtractTemporaryFile ('mydb.bak');
ADOConnection := CreateOleObject('ADODB.Connection');
ADOConnection.ConnectionString :=
'Provider=SQLOLEDB;' + // provider
'Data Source=DESKTOP-UE6ST1P\RMPRO;' + // server name
'Initial Catalog=master ;' + // default database
'User Id=sa;' + // user name
'Password=mypass;'; // password
ADOConnection.Open;
try
ADOCommand := CreateOleObject('ADODB.Command');
ADOCommand.ActiveConnection := ADOConnection;
ADOCommand.CommandText := 'RESTORE DataBase mydb FROM DISK = ' + QuotedStr(ExpandConstant('{tmp}\mydb.bak'));
ADOCommand.CommandType := adCmdText;
ADOCommand.Execute(NULL, NULL, adCmdText or adExecuteNoRecords);
finally
ADOConnection.Close;
end;
except
MsgBox('Error', mbError, MB_OK);
end;
end;
当我运行此代码时出现此错误
例外:Microsoft OLE DB Provider for SQL Server:无法打开备份设备“C:\Users\sina\AppData\Local\Temp\is-QADA6.tmp\mydb.bak”。操作系统错误 5(拒绝访问)。
如何处理 InnoSetup 中的访问被拒绝?我在“以管理员身份运行”中运行设置并关闭 UAC,但我仍然遇到此问题。