DataSet 的 FindFirst/FindNext/FindPrior/FindLast 用法

在写 QDataSet 的时候,出于重载的需要,研究了下 TDataSet 的上述方法,发现很不错,特意介绍给大家。

这组函数与使用过滤的区别是它一次只找到一条记录,如果成功,它将其定位到该记录。它使用 Filter 表达式,而不需要设置 Filtered 为 True,这样子,它就可以使用 Filter 表达式得到类似 Locate 的效果,而且更好的是,它相对于 Locate,提供了遍历查找结果的方式。

正常使用的步骤如下:

1、设置 Filter 过滤表达式;

2、调用 FindFirst 查找第一条记录,如果找到,它返回True。

3、调用 FindNext 查找下一条记录,如果找到,它返回True。

如果要从当前记录的下一条开始查找,直接调用 FindNext 就可以。如果想从特定记录开始查找,设置 RecNo ,然后 FindNext 就搞定了。

如果要从后往前查找,就调用 FindLast + FindPrior 的组合即可。至于 Filter 表达式的格式,各家组件实现不完全一致,TQDataSet 的 Filter 属性的相关支持情况,请参考文章:[QDB] TQDataSet 过滤表达式支持的操作符详解

 

分享到: