请教对BDE熟悉的朋友数据库 dBase 4 Level 7  DBF
引擎 BDE
数据库文件可以用QE打开
当然,可以把dbf文件等删掉再create table,但是在vb6下create出来的table不能用qe打开了,这不行所以把dbf数据库里面的数据全部删除掉~因为dbf数据库的删除都只是简单做删除标记,这样一来,dbf文件体积会越来越大
查到bde引擎下 DbiPackTable 可以做这个事情,但是不知道在哪个dll下
其他方法也行
多谢了

解决方案 »

  1.   

    一个 dbf 文件内容由{定义,数据,EOF},针对前删除的表只有将数据部分切除就可以了。
    其实最简单的方式是保留最开始新建的空表文件,需要清除数据的时候覆盖一下文件就可以了(当然你要先关闭当前连接)。
    与表相关的 .dbt 、 .ndx 等文件也一样处理即可。
      

  2.   

    呵呵  没办法了 ,现在就是保留空表文件,然后做覆盖处理没办法,客户提供了BDE的DLL封装,还是个半成品,唉结贴了算了,呵呵
      

  3.   

    其实你完全可以自己做一个,有记录的压缩还需要同步 .dbf 和 .dbt、.ndx 之间的关系,清空表只要保留{定义,EOF},很简单。
    这里有文件结构的定义:http://www.clicketyclick.dk/databases/xbase/format/