1:关键是看你的数据量是否大,如果大的话可以按增量备份或恢复,否则全部了
2:你可以按每行记录的插入过程和Tprogressbar联系起来啊。
比如:
progressbar1.Max :=RecordCount ;
For ii:=1 to RecordCount do
begin
//insert
  progressbar1.Position :=ii;
  Application.ProcessMessages
  Next ;end;

解决方案 »

  1.   

    以下为SQLSERVER的备份还原程序
    备份:
    ADOCmd.CommandText:='BACKUP DATABASE 库名 TO DISK=备份路径和文件名 ’
    还原:
    先删除原来的
    ADOCmd.CommandText:='Drop Database 库名 ';
    还原
    ADOCmd.CommandText:='Restore database 库名  from DISK=文件名 ’
    具体可参看数据库的帮助
      

  2.   

    (备份的是该软件的安装路径下的\data文件夹中的各种表)?
    应该是小型数据库吧,象Paradox, dbase.用CoypFile()函数全部搞定。
      

  3.   

    我做的都是Paradox类型的表
      备份的数据是软件的安装路径下的\data文件夹中的各种表,如用户选择安装目录"c:\xx",则备份的为"c:\xx\data\"目录下的各种表,若用户选择安装目录"d:\yy",则备份的为"d:\yy\data\"目录下的各种表。
      能不能说的详细点,如获取路径过程,拷贝过程,恢复过程等等...谢谢。
      

  4.   

    http://www.csdn.net/expert/topic/840/840614.xml?temp=.4706995
      

  5.   

    备份:
     pgbar.Max:=100;
        pgbar.Min:=0;
        pgbar.Step:=20;
        try
            adoconnection1.Close;       adocommand1.CommandText:='execute sp_helpdevice';
             pgbar.StepIt;
           adocommand1.Execute ;
           pgbar.stepit;
           adocommand1.CommandText:='backup database docmanage to disk=''c:\ccc.bak'' with init';
           pgbar.StepIt;
           adocommand1.Execute ;
           adocommand1.CommandText:='backup log docmanage to ccc';
           pgbar.StepIt;
           adocommand1.Execute;
           form1.Hide;
              if messagedlg('数据库docmanage已成功备份到c:\ccc.bak!是否继续?',mtwarning,[mbok],0)=mrok then
                 begin
                   form1.close
                 end;
          adoconnection1.Open;
    except
             on exception do
                  if ADOConnection1.InTransaction then
                     ADOConnection1.RollbackTrans
    end;
    end;
    还原:
     adoconnection1.Close ;
                pgbar.Max:=100;
                pgbar.Min:=0;
                pgbar.Step:=20;
                try
                    ADOCommand1.CommandText:='use master ';
                    pgbar.StepIt;
                    adocommand1.Execute ;
                    adocommand1.CommandText:='RESTORE database docmanage FROM DISK = ''c:\ccc.bak''  with replace ';
                    pgbar.StepIt;
                    pgbar.StepIt;
                    adocommand1.Execute ;
                    pgbar.StepIt;
                    pgbar.StepIt;
                    adoconnection1.Open;
                    form1.Hide;
                      if messagedlg('c:\ccc.bak已成功还原到数据库docmanage!继续?',mtwarning,[mbok],0)=mrok then
                         begin
                           form2.close
                      end;
                except
                   on exception do
                       if ADOConnection1.InTransaction then
                          ADOConnection1.RollbackTrans;
                end;