delphi 使用 FireDAC 分页查询  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi 使用 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;


1013147-20201014105155826-2112822853.png

来源:https://www.cnblogs.com/rtcmw/p/13813546.html


推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.12123489379883 seconds