4.1.4 查寻范围——Range
本章最后一个要说明的查寻方法就是SetRange。SetRange方法可以让开发人员指定索引字段符合一定范围值的数据才可以被存取。借助SetRange开发人员可以设定特定的索引字段值来查寻一笔数据,或是一组在指定范围值之内的数据。由于SetRange只能够适用在字段索引之上,因此它的适用性比前面介绍的查寻方法来得小,不过SetRange在查寻索引字段的数据时,会比其他的方法来得有效率一点。
使用SetRange方法非常简单,开发人员只需要指定索引范围值的起始数值和结尾数值,dbExpress便会自动地从结果数据集中查寻出所有符合范围值的数据。下面便是SetRange的函数原型:
procedure SetRange(const StartValues, EndValues: array of const);
SetRange的第一个参数StartValues便是查寻范围的起始数值,而EndValues参数便是查寻范围的结尾数值,在使用上非常地简单。现在就让我们在范例应用程序中使用SetRange来查寻数据。
请在主窗体中再加入一个【SetRange】按钮以及两个TEdit控件以便输入查寻范围的起始数值和结尾数值,如图4-17所示。

图4-17 加入SetRange的范例应用程序主窗体
双击主窗体中的【SetRange】按钮,并且在OnClick事件处理函数中撰写如下的程序代码:
procedure TfrmMain.btnSetRangeClick(Sender: TObject);
begin
lStart := GetTickCount;
dmSearchData.sqlcdsTest.SetRange([edtStartRange.Text], [edtEndRange.Text]);
lEnd := GetTickCount;
Self.Caption := FloatToStr((lEnd - lStart) /1000.0);
end;
上面的程序代码以edtStartRange和edtEndRange控件的输入值作为SetRange的查寻范围的起始数值和结尾数值,并且以constant数组的类型作为调用SetRange方法的参数。
图4-18便是执行范例应用程序并且点击【SetRange】按钮后的结果,从画面中可以看到SetRange方法果然快速地查寻到在查寻范围值之内所有的数据。

图4-18 使用SetRange方法查寻符合范围值的数据
当开发人员处理完由SetRange抽取的数据之后,可以调用CancelRange取消SetRange的作用,恢复结果数据集中所有数据都可以被存取的状态。
procedure CancelRange;






