FireDAC 分页查询
代码
分页查询
procedure TForm1.Button1Click(Sender: TObject);
begin
//设置每页返回的记录数(获取的最大记录数)
FDQuery1.FetchOptions.RecsMax := 20;
//获取第1页的数据(从0开始,相当于SELECT * FROM tceshi LIMIT 20 OFFSET 0)
FDQuery1.FetchOptions.RecsSkip := 0;
//查询数据
Memo1.Lines.Add('第1页的数据-------------------------');
FDQuery1.Open('SELECT * FROM tceshi');
while not FDQuery1.Eof do
begin
Memo1.Lines.Add(FDQuery1.Fields[0].AsString);
FDQuery1.Next;
end;
Memo1.Lines.Add('第2页的数据-------------------------');
//更改RecsSkip前使用
FDQuery1.Disconnect;
//获取第2页的数据(从20开始,相当于SELECT * FROM tceshi LIMIT 20 OFFSET 20)
FDQuery1.FetchOptions.RecsSkip := 20;
//查询数据
FDQuery1.Open('SELECT * FROM tceshi');
FDQuery1.First;
while not FDQuery1.Eof do
begin
Memo1.Lines.Add(FDQuery1.Fields[0].AsString);
FDQuery1.Next;
end;
end;
方法
FireDAC.Stan.Option.TFDFetchOptions.RecsMax
property RecsMax: Integer;
Unit
控制要获取的最大记录数。限制从单个结果集中获取的记录数。默认值为 -1。
要更改已准备好的数据集的 RecsMax
,必须首先调用 Disconnect
方法。
FireDAC 仅返回第一个 RecsMax
记录,其他记录将被丢弃。 -1表示没有限制。
根据不同的 DBMS,
RecsMax
和RecsSkip
可以转换为 SELECT 语句子句(TOP、LIMIT 等),限制服务器端的结果集。如果 DBMS 不支持此类子句,则会在客户端上执行限制。
FireDAC.Stan.Option.TFDFetchOptions.RecsSkip
property RecsSkip: Integer;
Unit
控制要获取的第一条记录的偏移量。指定要从单个结果集开头跳过的记录数。默认值为 -1。
要更改已准备好的数据集的 RecsSkip
,必须首先调用 Disconnect
方法。
根据不同的 DBMS,
RecsMax
和RecsSkip
可以转换为 SELECT 语句子句(TOP、LIMIT 等),限制服务器端的结果集。如果 DBMS 不支持此类子句,则会在客户端上执行限制。
FireDAC.Comp.DataSet.TFDDataSet.Disconnect
procedure Disconnect(AAbortJob: Boolean = False);
Unit
中止当前操作并释放此数据集使用的 DBMS 资源。调用后,数据集处于 dsInactive
状态,并且 Prepared
属性设置为 False。