在用Delphi+SQL Server做MIS系统时,如何实现数据库数据的备份?最好能有源代码,谢谢!

解决方案 »

  1.   

    备份:
       CREATE PROCEDURE khgl_backup 
      @databasename varchar(20),@backup_device varchar(100)
    AS
    begin
         backup database @databasename to disk=@backup_device  with init
    end
      

  2.   

    http://www.delphibbs.com/delphibbs/dispq.asp?lid=727687
    好奇怪,你看上面地址思楼的内容居然无法在这里发布,提示什么有非法信息,郁闷
    来自:m008, 时间:2001-11-13 15:28:00, ID:727742
      

  3.   

    备份:
    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;
      end;
    dmData.adoQryTmp连接的是系统MASTER数据库,备份还原之前应该关闭要备份还原的AdoConn数据库连接
    AdoConn.Connected:=False;