我动态创建了一个access文件(.mdb),在程序的最后我想删除它,用了deletefile函数却没删掉,也没报错,我用step调试,删除语句的确也执行了,另外我在一个新的project里面,就放了一个按钮,代码一样,却能删除。请问高手这是怎么回事啊???

解决方案 »

  1.   

    因为你文件正在使用
    DeleteFile()不会报错的。如果失败只返回False
      

  2.   

    好象删除过程需要的是文件类型的参数,我想删除c:\temp.mdb 怎样关闭它,怎样实现
      

  3.   

    procedure TExportForm.BtnGetDataSourceClick(Sender: TObject);
    var
    createAccess : OleVariant;
    begin
      if FileExists('c:\Temp.mdb') then DeleteFile('c:\Temp.mdb');
          createAccess:=CreateOleObject('ADOX.Catalog');
          createAccess.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Temp.mdb');
      if opndlgDataSource.Execute then EdtDataSource.Text:=opndlgDataSource.FileName;
    end;
    我是直接创建的,并没有用打开函数
      

  4.   

    在删除之前先关闭数据连接.比如ADOConnection.Close;
      

  5.   

    连接你的数据库的代码可能是 ADOCONNECTION,也可能是 TDATABASE组件,不管是什么
    请你先 断开它。
      

  6.   

    果然是Maple119(枫叶)所说的,谢谢各位