前台用delphi6编制的数据库程序中,如何在前台程序中编写代码,实现DB的备份和恢复功能。求源代码!!
急呀!

解决方案 »

  1.   

    以前在用BDE时, 有个batchmove之类的可以简单完成, 不过也挺慢的, 反而觉行直接写找码创建目的表再循环插进去还好点
      

  2.   

    SQL SERVER
    //////////////////////备份
      try
          Bak_ADOQ.Close();
          Bak_ADOQ.SQL.Clear;
          Bak_ADOQ.SQL.Add('use master');
          Bak_ADOQ.Prepared;
          Bak_ADOQ.ExecSQL;
          restorestring :='RESTORE DATABASE '+trim(databaseName)+' FROM  DISK = N'''+FileName+''' WITH  FILE = 1,  NOUNLOAD ,  STATS = 10,  REPLACE,RECOVERY';
          Bak_ADOC.CommandText := restoreString;
          Bak_ADOC.Execute;
          application.MessageBox('恢复数据成功!','数据恢复', mb_ok+MB_ICONINFORMATION);      Bak_ADOQ.Close();
          Bak_ADOQ.SQL.Clear;
          Bak_ADOQ.SQL.Add('use '+trim(databaseName));
          Bak_ADOQ.Prepared;
          Bak_ADOQ.ExecSQL;
        except
          application.MessageBox('恢复数据出错!请重新恢复,并停止一切的数据操作!','数据恢复', mb_ok+MB_ICONINFORMATION);
        end;
    ///////////////////////////恢复
    if saveDialog.Execute then
      try
        saveDialog.Title:='备份数据路径';
        backupString := 'BACKUP DATABASE '+trim(databaseName)+' TO  DISK = N'+quotedstr(saveDialog.FileName)+' WITH  INIT ,  NOUNLOAD ,  NOSKIP ,  STATS = 10,  NOFORMAT';
        Bak_ADOQ.Close;
        Bak_ADOQ.SQL.Clear;
        Bak_ADOQ.SQL.Add(backupString);
        Bak_ADOQ.Prepared;
        Bak_ADOQ.ExecSQL;
        application.MessageBox('备份成功!','数据备份', mb_ok+MB_ICONINFORMATION);
      except
        application.MessageBox('备份出错!请重新备份数据。','数据备份', mb_ok+MB_ICONINFORMATION);
      end;
      

  3.   

    有没有想过写存储过程呢?效率高很多吧
    用TStoreProc调