查看: 67|回复: 0

delphi FireDAC 分页查询

[复制链接]

1

主题

0

回帖

0

积分

热心网友

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2011-7-4
发表于 2023-9-16 18:32:00 | 显示全部楼层 |阅读模式

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

FireDAC.Stan.Option

控制要获取的最大记录数。限制从单个结果集中获取的记录数。默认值为 -1

要更改已准备好的数据集的 RecsMax,必须首先调用 Disconnect 方法。

FireDAC 仅返回第一个 RecsMax 记录,其他记录将被丢弃。 -1表示没有限制。

根据不同的 DBMS,RecsMaxRecsSkip 可以转换为 SELECT 语句子句(TOP、LIMIT 等),限制服务器端的结果集。如果 DBMS 不支持此类子句,则会在客户端上执行限制。

FireDAC.Stan.Option.TFDFetchOptions.RecsSkip

property RecsSkip: Integer;

Unit

FireDAC.Stan.Option

控制要获取的第一条记录的偏移量。指定要从单个结果集开头跳过的记录数。默认值为 -1

要更改已准备好的数据集的 RecsSkip,必须首先调用 Disconnect 方法。

根据不同的 DBMS,RecsMaxRecsSkip 可以转换为 SELECT 语句子句(TOP、LIMIT 等),限制服务器端的结果集。如果 DBMS 不支持此类子句,则会在客户端上执行限制。

FireDAC.Comp.DataSet.TFDDataSet.Disconnect

procedure Disconnect(AAbortJob: Boolean = False);

Unit

FireDAC.Comp.DataSet

中止当前操作并释放此数据集使用的 DBMS 资源。调用后,数据集处于 dsInactive 状态,并且 Prepared 属性设置为 False



来源:https://www.cnblogs.com/txgh/p/17707098.html
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部