我在Delphi中执行以下代码:
MyClientDataSet.IndexFieldNames:='FIELD1;FIELD2;FIELD3'
我可以看到MyClientDataSet.RecordCount在此临时索引处于活动状态时显示减少的记录数。如果我进行while循环:
while not MyClientDataSet.Eof do begin
//... some code
MyClientDataSet.Next;
end;
然后只有部分记录在此循环中被访问,而临时索引处于活动状态。记录在没有任何特定顺序的情况下丢失:一些丢失的记录在其索引字段中可以包含nil值,而一些丢失的记录包含具有值的所有字段。 是设计的这种行为还是我发现了一些ClientDataSet错误(可能依赖于某些特定版本的midas.dll库)或者我需要以某种特定方式配置我的TClientDataSet(我无法想象 - 如何)?
我正在使用Delphi 6,但我想这个问题可以在以后的Delphi版本中使用。