你先写好实现sql server的数据备份和恢复的存储过程然后调用即可

解决方案 »

  1.   

    你先写好实现sql server的数据备份和恢复的存储过程然后调用即可
      

  2.   

    至于存储过程的编写,最简单的方法是先作备份和恢复动作,跟踪,然后把跟踪结果copy过来即可
      

  3.   

    在query 中,写
    backup database tablename to disk='目录路径及文件名'  with init
    或:在Form中放上一个ADOConnection和一个ADOCommand,设好ADOConnection的DefaultDatabase和Connected为True,ADOCommand的Connection为ADOConnection1,CommandText写为backup database mydatabase to disk='\\mycomputer\mypath\bk_mydat.dat' with init,你想把数据备份到哪台机器上,就在那台机器上设置一个完全共享的目录即可,想同时备份多个数据库就在CommandText中写多条语句,在Form的onShow事件中加入ADOCommand1.Execute,然后利用Windows自带的“计划任务”程序,让你编译好的程序在某个时间执行即可,
      

  4.   

    呵呵,即可?注意先连接到MASTER,设置要恢复的数据库为单用户,才能恢复,做一下才知道怎么才即可.
      

  5.   

    //这个问题已经回答了N遍,你可以看看以前的帖子好了procedure 备份数据库(sender:tobject);
    begin
      adoconnection1.execute('backup database ...');
      ...
    end;
    procedure 还原数据库(sender:tobject);
    begin
      adoconnection1.execute(restoredatbase database ...');
      ...
      

  6.   

    备份:
    begin
        pgbar.Max:=100;
        pgbar.Min:=0;
        pgbar.Step:=20;
         adoconnection1.Close;
         if adoconnection1.Connected then
         begin
            application.MessageBox('数据库数据正在使用','系统提示')
         end
         else
              begin
              try
                adocommand1.CommandText:='use master';
                pgbar.StepIt;
                adocommand1.Execute ;
                adocommand1.CommandText:='execute sp_helpdevice';
                pgbar.StepIt;
                adocommand1.Execute ;
                pgbar.stepit;
                adocommand1.CommandText:='backup database docmanage to disk=''c:\back1.bak'' with init';
                pgbar.StepIt;
                adocommand1.Execute ;
                adocommand1.CommandText:='backup log docmanage to back1';
                pgbar.StepIt;
                adocommand1.Execute;
                try
                   aDOConnection1.Connected:=true;
                except
                  ShowMessage('无法连接指定的数据库!');
                  application.Terminate;
                end;
                form1.Hide;
                  if messagedlg('数据库docmanage已成功备份到c:\back1.bak!是否继续?',mtwarning,[mbok],0)=mrok then
                     begin
                       form1.close
                     end;
              except
                 on exception do
                     if ADOConnection1.InTransaction then
                         ADOConnection1.RollbackTrans
    end;
    end;
    end;
    还原:
     begin
                pgbar.Max:=100;
                pgbar.Min:=0;
                pgbar.Step:=20;
                try
                    ADOCommand1.CommandText:='use master ';
                    pgbar.StepIt;
                     pgbar.StepIt;
                    adocommand1.Execute ;
                    adocommand1.CommandText:='RESTORE database docmanage FROM DISK = ''c:\back.bak''  with replace ';
                    pgbar.StepIt;                pgbar.StepIt;
                    pgbar.StepIt;
                    adocommand1.Execute ;
                     try
                         aDOConnection1.Connected:=true;
                     except
                        ShowMessage('无法连接指定的数据库!');
                        application.Terminate;
                     end;
                    form1.Hide;
                      if messagedlg('c:\back.bak已成功还原到数据库docmanage!继续?',mtwarning,[mbok],0)=mrok then
                         begin
                           form2.close
                      end;
                except
                   on exception do
                       if ADOConnection1.InTransaction then
                          ADOConnection1.RollbackTrans;
                end;
    end;
    end;
    你试试看了我这里能用!!!!