回 帖 发 新 帖 刷新版面

主题:帮忙看看下面的备份代码为什么不行?//

先选择目录
procedure Tcopyform.BtnOpenClick(Sender: TObject);
var
 dir,root:string;
begin
  root:=ExtractFileDir(paramstr(0));
  if SelectDirectory('选择路径',root,Dir) then
   edit1.Text:=Dir;
end;
procedure Tcopyform.BtnBackUpClick(Sender: TObject);
var
 newpath:string;
begin
  newpath:=edit1.Text+'\mhpc.bak';
 if main.conn.Connected then
    main.conn.Close;
try
    with main.adoquery1 do
     begin
      main.adoquery1.close;
      main.adoquery1.sql.Clear;
      main.adoquery1.sql.add('backup database mhpc to disk=''newpath''');
      execsql;
      end;
     showmessage('备份完成');
   except
     showmessage('备份失败');
    end;
  main.conn.Open();
end;
显示备份成功 为什么找不到备份文件啊!!!!!!

回复列表 (共3个回复)

沙发

没见你新建文本文件啊,,你好像只给了路径,
得有下面的这句吧,,
assignfile(f,'temp.txt');
我也不确定,你试试,,

板凳

再就是newpath:=edit1.Text+'\mhpc.bak'这一句好象也有问题吧,edit1得到的text最末一个字符好象就是\
我也不确定

3 楼


procedure Tcopyform.BtnOpenClick(Sender: TObject);
var
 dir,root:string;
begin
  root:=ExtractFileDir(paramstr(0));
  if SelectDirectory('选择路径',root,Dir) then
   edit1.Text:=Dir;
end;
procedure Tcopyform.BtnBackUpClick(Sender: TObject);
var
 newpath:string;
begin
  newpath:=edit1.Text+'\mhpc.bak';
  [color=FF0000]showmessage(newpath);[/color]//
 if main.conn.Connected then
    main.conn.Close;
try
    with main.adoquery1 do
     begin
      main.adoquery1.close;
      main.adoquery1.sql.Clear;
      main.adoquery1.sql.add('backup database mhpc to disk=''newpath''');
      execsql;
      end;
     showmessage('备份完成');
   except
     showmessage('备份失败');
    end;
  main.conn.Open();
end;

看一下你的备份路径到底在哪儿.我没用过'if SelectDirectory('选择路径',root,Dir)'.但是若要想实现你的效果的话:ExtractFileDir(paramstr(0))+'back\mydata.bak'.直接这样不是更好吗?

我来回复

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