使用 FireDAC 分页查询
FireDAC 原生支持分页查询,不用写分页查询SQL,只要设置 FetchOptions.Recskip (跳过的行数)和 RecsMax(分页大小)允许通过结果集进行分页。打开游标后,将跳过第一个 RecsSkip
。其余的记录,最多 RecxMax 将被获取。当 Prepared 后,更改 RecsSkip 和 RecsMax属性值不起作用。因此,在获取下一行页之前,该命令必须未准备,然后再次执行。例如:
// 分页大小为 20,查询第一页 FDQuery1.FetchOptions.RecsSkip := 0; FDQuery1.FetchOptions.RecsMax := 20; FDQuery1.Open; // process rows // 查询第 2 页 FDQuery1.Disconnect; FDQuery1.FetchOptions.RecsSkip := 20; FDQuery1.Open; // process rows // 查询第 3 页 FDQuery1.Disconnect; FDQuery1.FetchOptions.RecsSkip := 40; FDQuery1.Open; // process rows
我们可以简单封装程一个分页查询过程,其中 PageSize 为分页大小, PageIndex 页码 ,0 为第一页 ,RecsSkip 可以通过 PageSize * PageIndex 计算出来,如下:
procedure TForm1.PagingQuery(Query: TFDQuery; PageSize, PageIndex: Integer); begin Query.Disconnect; Query.FetchOptions.RecsSkip := PageSize * PageIndex; Query.FetchOptions.RecsMax := PageSize; Query.Open; end;
作者:
oldfarmer
出处:
http://www.cnblogs.com/rtcmw/
欢迎探讨交流 DELPHI 相关技术,QQ:64445322 QQ群:734515869
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。