【发布时间】:2011-05-27 05:40:45
【问题描述】:
我在使用 Delphi2010 在 Paradox 7 表中设置二级索引范围时遇到问题。
相关字段为:
特征类型 (int); YMax(整数); XMax(整数); YMin (int); Xmin(整数)。 二级索引按此顺序包含所有这些字段。
我使用这样的 SetRange 语句进行了测试(不需要添加所有字段值,其余部分假定为 NULL 并包含所有值):
table1.IndexName := 'YMaxIndex';
table1.SetRange([101, 280110400],[101, 285103294]); //386236 records
并尝试通过添加约束来获得 0 结果:
table1.IndexName := 'YMaxIndex';
table1.SetRange([101, 280110400, 1],[101, 285103294, 1]); //386236 records
但是还是得到3863236,这在检查表中XMax字段的值时显然是不正确的。
有人可以向我解释一下我对 Paradox index 和 SetRange 的不理解吗?我经常使用类似的代码,但不一定用 3 个字段指定范围。
更新
请参阅下面 Uwe 的回复。最终代码解决方案如下(XMax 的新范围):
Table1.SetRange([101,280110400], [101,285103294]);
Table1.Filter := 'XMax > 100000 and XMax < 110000';
Table1.Filtered := true;
【问题讨论】: