如题。

解决方案 »

  1.   

    下面是Sql Server的备份恢复。使用Sql语句。
    // 备份。使用AdoConnection连接你的数据库,adoquery链这个AdoConnection。
    procedure TForm1.Button1Click(Sender: TObject);
    begin
     AdoQuery1.SQL.Text := 'backup database testDFW to disk = ' + '''' + 'e:\backup.dat' + '''';
     showmessage(AdoQuery1.SQL.Text);
     AdoQuery1.ExecSQL;
    end;
    //恢复。 AdoConnection不要连接你的数据库,可以连接一个其他数据库,如Master。
    procedure TForm1.Button2Click(Sender: TObject);
    begin
     AdoQuery1.SQL.Text := 'restore database testDFW from disk =' + '''' + 'e:\backup.dat'  + '''';
     showmessage(AdoQuery1.SQL.Text);
     AdoQuery1.ExecSQL;
    end;
      

  2.   

    采用压缩备份的方法:unit unAccessTools;interfaceuses Sysutils,ComObj,Dialogs;function DaoActive(var DaoObject:OleVariant):Boolean;
    function DaoCompactDB(const FileName:string):Boolean;
    function DaoRepairDB(const FileName:string):Boolean;implementationfunction DaoActive(var DaoObject:OleVariant):Boolean;
    begin
      Result:=False;
      try
        DaoObject:=GetActiveOleObject('DAO.DBEngine.36');
        Result:=True;
      except
        try
          DaoObject:=CreateOleObject('DAO.DBEngine.36');
          Result:=True;
        except
          DaoObject:=Null;
        end;
      end;
    end;//备份Access数据库
    function DaoCompactDB(const FileName:string):Boolean;
    var
      db:OleVariant;
      TempFile:string;
    begin
      Result:=False;
      try
        if not DaoActive(db) then
          Exit;
        try
          TempFile:=ExtractFilePath(FileName)+'msaTemp.mdb';
          db.CompactDatabase(FileName,TempFile);
          DeleteFile(FileName);
          RenameFile(TempFile,FileName);
          Result:=True;
        except
          on E:EOleException do
            ShowMessage(E.Message);
        end
      finally
        db:=Unassigned;
      end;
    end;//修复Access数据库
    function DaoRepairDB(const FileName:string):Boolean;
    var
      db:OleVariant;
    begin
      Result:=False;
      try
        if not DaoActive(db) then
          Exit;
        try
          db.RepairDatabase(FileName);
          Result:=True;
        except
          on E:EOleException do
            ShowMessage(E.Message);
        end
      finally
        db:=Unassigned;
      end;
    end;end.
      

  3.   

    呵呵用Access数据库一定数据量不是很大,那直接将mdb文件备份不就可以了;)
      

  4.   

    备份Access,我也认为直接将mdb文件备份(Copy一个副本)是简单又可靠的
    ===
    要是使用D7的用户使用MS OfficeXP的,就不必使用cg1120(代码最优化-§新年祝福你,好运伴着你§) 的方法,那个太麻烦了
    这个最简单,只对AccessXP有效,2000的不知道,97一定不行的
    使用D7中Server页的AccessApp: TAccessApplication;
    一句搞定:
    AccessApp.CompactRepair('D:\Delphi Data\Test\test.mdb', 'D:\Delphi Data\Test\tmp.mdb', false);
      

  5.   

    谢谢各位的精彩回答, 我现在在做一个软件,项目不是很大是一个计件工资方面的。所以就选择ACCESS。但这个客户每天估计要录入100 条记录一年下来也有三四万条了到时速度肯定会比较慢的所以我希望能够实现有何方法实现按年备份的程序。
    继续......