我想做备份模块,不知delphi中用什么命令将access数据库备份到某一路径中?
有代码最佳。谢谢!(是sql语句吗?好象没找到。另外怎么样浏览路径?)

解决方案 »

  1.   

    文件复制到你得备份目录你可以搜索一下论坛得资料,,里面有很多的!例如:
    http://search.csdn.net/expert/topic/53/5301/2003/6/2/1863997.htm
      

  2.   

    API:CopyFile复制文件不就是最好的备份了
      

  3.   

    copyfile('c:\123.mdb','d:\456.mdb',true)
      

  4.   

    procedure TForm1.BitBtn2Click(Sender: TObject);
    var
      filename:string;
    begin
      StatusBar1.SimpleText := '正在备份中...';
      //label1.Caption:='正在备份中...';
      pgbar.Max := 100;
      pgbar.Min := 0;
      pgbar.Position := 0;
      pgbar.Step := 20;
      filename := database + FormatDateTime('yy-MM-dd-hh-mm-ss', Now);
         dm.ADOConnection1.Close;
          //TmpStr:=  ExtractFileName(filename);
         // strlen:=  Length(TmpStr);
         // DevName:= Copy(TmpStr,1,strlen-4);
          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 ' + database + ' to disk=''' +'d:\'+ filename + ''' with init';
              pgbar.StepIt;
              adocommand1.Execute;
              adocommand1.CommandText := 'Use ' + database;
              pgbar.StepIt;
              adocommand1.Execute;
           // Self.Hide;
              application.MessageBox(pchar('数据库已经成功备份到 ' + filename + '!'), Gsysname, mb_ok + mb_iconinformation);
            //ShowMessage();
              StatusBar1.SimpleText := '';
              pgbar.Position := 0;
              try
                dm.ADOConnection1.Connected := True;
              except
                begin
                  StatusBar1.SimpleText := '';
                  application.MessageBox('无法重新接连数据库!', Gsysname, mb_ok + mb_iconerror);
                  abort;
                end;
              end;
              self.Close;
            except
              on Exception do
                if dm.ADOConnection1.InTransaction then
                  dm.ADOConnection1.RollbackTrans;
            end;
          end;
    end;
      

  5.   

    copyfile(PChar(Ispath),PChar(ispath1),true);
    字符串要转换
      

  6.   

    我用ado+access
    可以用sql语句备份吗?
      

  7.   

    海天子:我看到你的:
    BACKUP DATABASE Northwind     TO DISK = 'c:\Northwind.bak'RESTORE FILELISTONLY     FROM DISK = 'c:\Northwind.bak'RESTORE DATABASE TestDB     FROM DISK = 'c:\Northwind.bak'    WITH MOVE 'Northwind' TO 'c:\test\testdb.mdf',    MOVE 'Northwind_log' TO 'c:\test\testdb.ldf'1,它是sql语句吗?
    2,可以用在access备份吗?
      

  8.   

    哦,在MSSQL中是SQL语句,但ACCESS就不能这样用了其实也有必要,直接拷文件不是更简单吗
      

  9.   

    你若要一个表备份到一个文件的话,你可以用TBatchMove,Delphi的安装目录下的help目录有例子
      

  10.   

    huojiehai的备份可以在sql server中以包的形式运行,系统到了某个时间会自动执行
      

  11.   

    ACCESS 只要复制文件就行了
      

  12.   

    用copyfile('c:\123.mdb','d:\456.mdb',true)这样的命令备份。但是有一点,
    你的ADOCONNECTION的连接属性一定要断开!
      

  13.   

    有人提示我用这个
    我看不太懂:
    procedure TfmMain.DoBackupExecute(Sender: TObject);
    begin
     if SaveDialog.Execute then
     begin
       if ZipFile(Global.ExePath + 'dbWuye.mdb', SaveDialog.FileName) then
         MessageDg('备份数据库成功', MB_ICONINFORMATION)
       else
         MessageDg('备份数据库失败', MB_ICONWARNING);
     end;
    end;  
    大家能解释一下吗?
      

  14.   

    另外:
    我用copyfile
    可问题是我怎么知道客户安装的路径?也就是说access数据库的绝对路径?????
      

  15.   

    1.ZipFile是一个自定义的过程,意思是压缩文件,但你如果没有装那个控件,你是用不了的,另外还应该有一个UpZipFile的函数,用来解压的,都是自己写的,要配合控件,用这个控件可以压缩为zip文件2.ExtractFilePath(ParamStr(0))取得你的应用程序所在的路径,你的Access文件放在你的应用程序的目录下的,或是在其子目录下,取得应用程序所在的目录再取Access文件所在的位置就简单了
      

  16.   

    直接采用文件拷贝就可以了,access和interbase都是脱离式的数据库,可以在数据库运行的时候拷贝数据库文件,你可以直接调用copyfile这个函数来拷贝到指定的目录,可以采用savedialog来确定拷贝的位置,关于原有数据库的位置可以通过你调用的ado里面解析出来,或者从odbc中查出来
      

  17.   

    Procedure savephoto(filename: String; kahao: String);
    Begin
      If Not FileExists(filename) Then
        Exit;
      CopyFile(pchar(filename), pchar(ExtractFilePath(Paramstr(0)) + 'photo\' + kahao+'.'+你的扩展名), false);
    End;
    //kahao是你想存的名字;
      

  18.   

    filename是原文件路径加文件名
      

  19.   

    我用savedialog怎么知道目前要存的文件的全名(包含路径等)