delphi FireDAC 分页查询

发布时间 2023-09-16 18:36:54作者: txgh

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