sql server恢复

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; 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值