procedure TfrmDbRevert.BtnOKClick(Sender: TObject);
begin
if trim(EditPath.Text) = '' then
begin
application.messagebox('请选择源备份文件路径!', '系统提示', MB_ICONINFORMATION);
exit;
end;
//这个是连到数据库的,所以要先断开
frmDataModule.ADOConnection.Connected:= false;
ProgressBar1.Visible:= true;
ProgressBar1.Max:=100;
ProgressBar1.Min:=0;
ProgressBar1.Position:=0;
ProgressBar1.Step:=20;
with ADOQuery1 do
begin
SQL.Clear;
SQL.Add('use Master');
ExecSQL;
SQL.Clear;
SQL.Add('execute sp_helpdevice');
ExecSQL;
ProgressBar1.StepIt;
SQL.Clear;
SQL.Add('alter database erp_0 set offline WITH ROLLBACK IMMEDIATE ');
ProgressBar1.StepIt;
SQL.Add('restore DATABASE erp_0 from DISK =:disk WITH replace');
ProgressBar1.StepIt;
SQL.Add('alter database erp_0 set online with rollback immediate');
ProgressBar1.StepIt;
Parameters.ParamByName('disk').Value:= trim(EditPath.Text);
ExecSQL;
ProgressBar1.StepIt;
SQL.Clear;
SQL.Add('use erp_0');
ExecSQL;
try
ExecSQL;
Application.MessageBox('恢复成功!现在需要重新登陆软件!','提示',MB_ok);
application.Terminate;
except
Application.MessageBox('恢复失败!请确认恢复文件的路径和名称是否正确!','提示',MB_ok);
ProgressBar1.Visible:= false;
exit;
end;
end;
ProgressBar1.Visible:= false;
Try
frmDataModule.ADOConnection.Connected:= True;
Except
application.messagebox('无法重新连接数据库,请重新登入软件!', '提示', MB_ok);
End;
end;