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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM