请问我这段程序哪儿有问题!!每次执行后都显示一个错误(一个用做数据恢复的程序)
not found the file" c:\windows\stumanagement.mdb"
'c:\windows\'为opendialog1中的路径!!
procedure TMainForm.datahuifu(Sender: TObject);
var
dir:string;
a:integer;
begin
dir:=ExtractFilePath(application.ExeName)+'stumanagement.mdb';
loginForm.adoconnection1.Connected:=false;
.......
c_DengJiForm.adoconnection1.Connected:=false;
if opendialog1.Execute then
begin
if copyfile(pchar(dir),pchar(opendialog1.FileName),false)=true then
showmessage('数据恢复成功')
else
showmessage('数据恢复出错');
end;
loginForm.adoconnection1.Connected:=true;
......
cfoundform.ADOConnection1.Connected:=true;
end;

解决方案 »

  1.   

    copyfile(pchar(dir),pchar(opendialog1.FileName),false)
    你是不是想把 opendialog1.filename 复制到 dir? 该成
    copyfile(pchar(opendialog1.FileName),pchar(dir),false)
      

  2.   

    dir:=ExtractFilePath(application.ExeName)+'\stumanagement.mdb';
      

  3.   

    同意 SmallHand(小手) 观点
      

  4.   

    仔细看一下目录下面的文件名是否正确,这么长的文件名最好用COPY才能保证不出错
    你的程序应该是没问题的,我没DELPHI不能帮你试了
      

  5.   

    楼主写的extractfilepath(...)
    本来就带有‘/’号的
    根本不用增加
    得楼主在文件拷贝的过程中并没有任何问题
    重点是要查看一下你的ADOCONNECTION的CONNECTSTRING中是否指明了'stumanagement.mdb'文件的目录
      

  6.   

    在ado中我用的是相对路径!.\.\stumanagement.mdb
      

  7.   

    呵呵
    从代码上看到你用了两个CONNECTION不知是否是一样的?
    最好用单步调试来查找下在到底在哪一步报错?