zoukankan      html  css  js  c++  java
  • 使用 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;

  • 相关阅读:
    数据库设计
    最近发生的事
    轻松搞定面试中的二叉树题目
    二叉树的遍历方法
    静态库Lib和动态库Dll
    深入理解C/C++数组和指针
    夜间日记
    typedef用法小结
    什么是静态链接库,什么是动态链接库
    线段树
  • 原文地址:https://www.cnblogs.com/rtcmw/p/13813546.html
Copyright © 2011-2022 走看看