最近有项目中,客户要求将数据写入一特定FoxPro表。项目所用数据库为SQL Server,本人考虑用ODBC连接DBF表,但存在无法删除记录(指用Pack彻底删除记录)的问题。主要原因是使用Pack命令必须独占打开表,但如果此前打开操作过该表,便再也不能关闭,使用Pack时提示表正被使用。请问有什么方法可以断开该表连接?
  或者有没有其他方法写入DBF表?如:直接写BDF格式的文件....  请高手指点!

解决方案 »

  1.   

    你用PACK物理删除记录时,先要用Delte逻辑删除记录!!!!:)
      

  2.   

    删除操作很烦,不如采用清空记录的方式,我就是这样作的.
    或者有些程序直接用vfp+ado完成
      

  3.   

    如果用BDE的话可以用一些odbc的API函数,这方面的资料比较多,但做起来比较麻烦,如果用ADO的话直接用adocommand控件用命令pack tablename就可以删除了。但前提都是要以独占方式打开。
      

  4.   

    比如A.dbf文件要pack.事先做一个空的文件a0.dbf,
    然后把a.dbf改名为a1.dbf,拷贝一份a0.dbf到a.dbf
    然后从a1.dbf中读数据,再写到a.dbf中。
    方法很笨,不过你可以试试