我用delphi写的备份代码,在自己电脑上可以运行成功,打好包也能运行成功,但为什么拿到别人电脑上一运行就失败呢?
是不是因为我写的代码中采用的是绝对地址?若是这样要想换个地方也能运行成功要如何修改呢?
希望各位高手帮帮我!备份代码如下:
procedure TForm7.BitBtn1Click(Sender: TObject);
begin
 adoquery1.Close;
 adoquery1.SQL.Clear ;
 adoquery1.SQL.Add('backup database shijuan to disk=''F:\sql\MSSQL\BACKUP\shijuan .back'' with init');
 try
     adoquery1.ExecSQL ;
     label4.Caption:='备份成功!!!';
     showmessage('备份成功!');
 except
 label4.Caption:='备份失败!';
 showmessage('备份失败!!!');
end;
end;

解决方案 »

  1.   

    ''F:\sql\MSSQL\BACKUP\shijuan .back'' 这个是不是程序目录下的也就是相对路径?
    如果是程序目录下的[F:\sql\],就这样改:
    procedure TForm7.BitBtn1Click(Sender: TObject); 
    var filepat:string;
    begin 
    filepat:=ExtractFilePath(Application.Exename)+'MSSQL\BACKUP\shijuan.back'
    adoquery1.Close; 
    adoquery1.SQL.Clear ; 
    adoquery1.SQL.Add('backup database shijuan to disk'+'"'+filepat+'"' +'with init'); 
    try 
        adoquery1.ExecSQL ; 
        label4.Caption:='备份成功!!!'; 
        showmessage('备份成功!'); 
    except 
    label4.Caption:='备份失败!'; 
    showmessage('备份失败!!!'); 
    end; 
    end; 
      

  2.   

    shijun这个数据库是你本机上的数据库,你朋友电脑上有没有这个数据库的,没有怎么备份呢。另外的,请参考楼上
      

  3.   

    不行啊,程序说在'MSSQL\BACKUP\shijuan.back' 上报错
      

  4.   

    用UltraEdit->Open->打开EXE文件->查找shijuan字符串->修改->保存文件->运行EXE程序即可
      

  5.   

    修改写死的路径:"F:\sql\MSSQL\BACKUP\"(前提是该EXE没有被用ASPACT等软件压过)。要是把程序拷回来再编译多没面子啊:)