起因是项目要做数据导入,其中计算一个字段的时候需要循环多次,然后就会莫名其妙的报错,发现是TABLE多次清空就会报错,测试代码如下,错误完全随机出现,没有规律,table的dbf文件有4个索引,在其他单元引用一切正常,将4个索引其中任意一个删除就没有任何问题了,但是无论更改字段顺序还是索引名字什么都无效,完全不知道是什么原理,为什么报错,特此求助大神!!!已经卡了2天了,这个项目做了1年多了也从来没碰到过这样的问题!下面附上错误提示,日文版的delphi 5!
索引没有任何特殊的,尝试了无数种方法!只要删掉任意一个索引就不会报错,但是不删除就一直报错!
4个索引格式为
A + X + Y + Z;
A + B + X + Y + Z;
A + B + C + X + Y + Z;
A + B + C + D + X + Y + Z;TRY
    for i := 1 to 1000 do
    begin
      DM5690.WK5690_.CLOSE;
      DM5690.WK5690_.EMPTYTABLE;
      DM5690.WK5690_.OPEN;
    end;  EXCEPT
    showmessage(IntToStr(i));
  END;Delphi索引TABLEEMPTYTABLE

解决方案 »

  1.   

    哎,本身我也不懂日文,也找不到相关的帮助文档
    似乎是带索引的table多次empty就会出现这个错误,但是完全不知道为什么
      

  2.   

    现在找到原因,发现是table多次emptytable就会报错,网上查了一下说是底层代码的原因,无法更改
    现在只能用
    while not table.eof do
      table.delete;
    的方法来清空table,速度慢不说,而且table对应的mdx和dbf文件还会一直变大,请问除了emptytable外还有什么办法既能清空table中的数据,又能清空table对应的dbf和mdx文件