⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sql server数据库的备份与恢复 .txt

📁 该程序采用delphi编写
💻 TXT
字号:
如何实现SQL Server数据库的备份与恢复  
来源:本站 作者:admin 发布时间:2007-05-07    

***************************************************************************************
procedure TForm1.Button1Click(Sender: TObject);
begin
  if Edit1.Text= '' then
  begin
    Showmessage('无选择要保存的文件名');
  end;
  try
            adoquery1.Close;
            adoquery1.SQL.Clear;
            adoquery1.SQL.Add('BACKUP DATABASE [card] TO disk = '''+edit1.Text+''' WITH              INIT');
            ADOQuery1.Prepared;
            adoquery1.ExecSQL;
            application.MessageBox('备份成功。','提示',0);
        except
            application.MessageBox('备份出错!请重新备份数据。','出错',0);
        end;
end;
***************************************************************************************   
备份:
procedure TBackupFrm.BitBtn2Click(Sender: TObject);
begin
if Edit1.Text= ' then
begin
Showmessage('无选择要保存的文件名');
exit;
end;
try
try
dmData.adoQryTmp.Active:= false;
dmData.adoQryTmp.SQL.Clear;
dmData.adoQryTmp.SQL.Add('BACKUP DATABASE [dzyl] TO DISK = ''+edit1.text+'' WITH INIT');
dmData.adoQryTmp.ExecSQL;
finally
begin
dmData.adoQryTmp.Active:= false;
Showmessage('数据库备份成功!');
end;
end;
except
on e:exception do
begin
ShowMessage('数据库备份失败!');
end;
end;
end;
---------------------------
恢复
procedure TBackupFrm.BitBtn4Click(Sender: TObject);
begin
  if Edit2.Text = ' then
  begin
    showmessage('未选择要恢复的数据库文件!');
    exit;
  end;
  with dmData do
  begin
    try
      adocmmd.CommandText:='use master';
      adocmmd.Execute;
      adocmmd.CommandText:='alter database dzyl set offline with rollback immediate';
      adocmmd.Execute;
      adocmmd.CommandText:='restore database dzyl from disk= ''+edit2.Text+'' with 
recovery ';
      adocmmd.Execute;
      adocmmd.CommandText:=' alter database dzyl set online with rollback immediate';
      adocmmd.Execute;
      showmessage('数据库恢复成功!');
      application.Terminate;
    except
      on e:exception do
      begin
        showmessage('数据库恢复失败!'+e.Message);
      end;

  end;
end;
其中dmData.adoQryTmp连接的是系统MASTER数据库,备份还原之前应该关闭要备份还原的AdoConn数据库

连接AdoConn.Connected:=False;
------------------------------------------------
另一方法:
备份如下:
        try
            backupString := 'BACKUP DATABASE [Paper] TO  DISK = N''+edit1.Text+'' WITH  

INIT ,  NOUNLOAD ,  NAME = N'Paper 备份',  NOSKIP ,  STATS = 10,  NOFORMAT';
            adoquery1.Close;
            adoquery1.SQL.Clear;
            adoquery1.SQL.Add(backupString);
            ADOQuery1.Prepared;
            adoquery1.ExecSQL;
            application.MessageBox('备份成功。','提示',0);
        except
            application.MessageBox('备份出错!请重新备份数据。','出错',0);
        end;
---------------------------
还原如下:
            if opendialog1.Execute then
            begin
                try
                    adoquery1.Close();
                    adoquery1.SQL.Clear;
                    adoquery1.SQL.Add('use master');
                    adoquery1.Prepared;
                    adoquery1.ExecSQL;
                    restorestring := 'RESTORE DATABASE [Paper] FROM  DISK = 

N''+opendialog1.FileName+'' WITH  FILE = 1,  NOUNLOAD ,  STATS = 10,  REPLACE,RECOVERY';
                    self.ADOCommand1.CommandText := restoreString;
                    adocommand1.Execute;
                    application.MessageBox('还原数据成功','提示',0);

                    adoquery1.Close();
                    adoquery1.SQL.Clear;
                    adoquery1.SQL.Add('use paper');
                    adoquery1.Prepared;
                    adoquery1.ExecSQL;          
                except
                    application.MessageBox('还原数据出错!请重新还原,并停止一切的数据操作!

','提示',0);
                end; 




 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -