回 帖 发 新 帖 刷新版面

主题:为什么数据备份不能成功啊

代码如下:
procedure Tbackupform.BtnBackUpClick(Sender: TObject);
var failure:boolean;
   databasepath:string;
begin
failure:=false;
DataBasepath:=ExtractFileDir(paramstr(0))+'\data';
if not copyfile('t_info.db','C:\Documents and Settings\new\桌面\yyyyy\t_info.db',false) then failure:=true;
 if failure then
 showmessage('数据备份没有成功!')
 else
 begin
 showmessage('数据备份结束!');
 end;
end;

回复列表 (共6个回复)

沙发

access??
提示什么错误?

板凳

delphi7.0自带的paradox表
就是跳到   showmessage('数据备份没有成功!');

3 楼

paradox没有试过.不过copyfile好像也不好用吧.我一直用下面的过程进行恢复与备份,你可以试一下.
procedure tfrm_systemset.Databakcopy(a,b:string);//a,b为源文件和目标文件
var
  T1, T2: file of byte;
  lin: array[0..10] of char;
  i: integer;
  length: longint;
begin
  assignfile(T1, a);
  reset(T1);
  assignfile(T2, b);
  rewrite(T2);
  length := filesize(T1);
     while length > 0 do
     begin
       blockread(T1, lin[0], sizeof(lin), i);
       length:=length-i;
       blockwrite(T2, lin[0], i);
    end;
    closefile(T1);
    closefile(T2);
  end;

4 楼

procedure tbackupform.Databakcopy(a,b:string);              //a,b为源文件和目标文件
var
  T1, T2: file of byte;
  lin: array[0..10] of char;
  i: integer;
  length: longint;
begin
  assignfile(T1, a);
  reset(T1);
  assignfile(T2, b);
  rewrite(T2);
  length := filesize(T1);
     while length > 0 do
     begin
       blockread(T1, lin[0], sizeof(lin), i);
       length:=length-i;
       blockwrite(T2, lin[0], i);
    end;
    closefile(T1);
    closefile(T2);
  end;
procedure Tbackupform.BtnBackUpClick(Sender: TObject);//调用过程
var  databasepath:string;
begin
DataBasepath:=ExtractFileDir(paramstr(0))+'\data';
 Databakcopy(databasepath,'C:\Documents and Settings\new\桌面\yyyyy\t_info.db');
出错“file access denied",请问什么原因啊?

5 楼

你的这句:DataBasepath:=ExtractFileDir(paramstr(0))+'\data';错了.不是一个有效的文件名.你可以showmessage看一下.
databakcopy(a,b:string)中,a为数据库文件,b为将要备份成的文件;

6 楼

问题已经解决

我来回复

您尚未登录,请登录后再回复。点此登录或注册