人生新希望 發表於 2023-9-16 18:32:00

delphi FireDAC 分页查询

<h1 id="firedac-分页查询">FireDAC 分页查询</h1>
<h2 id="代码">代码</h2>
<h3 id="分页查询">分页查询</h3>
<pre><code class="language-delphi">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.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.AsString);
    FDQuery1.Next;
end;
end;
</code></pre>
<h2 id="方法">方法</h2>
<h3 id="firedacstanoptiontfdfetchoptionsrecsmax">FireDAC.Stan.Option.TFDFetchOptions.RecsMax</h3>
<pre><code class="language-delphi">property RecsMax: Integer;
</code></pre>
<p><strong>Unit</strong></p>
<p>FireDAC.Stan.Option</p>
<p>控制要获取的最大记录数。限制从单个结果集中获取的记录数。默认值为 <em>-1</em>。</p>
<p>要更改已准备好的数据集的 <code>RecsMax</code>,必须首先调用 <code>Disconnect</code> 方法。</p>
<p>FireDAC 仅返回第一个 <code>RecsMax</code> 记录,其他记录将被丢弃。 -1表示没有限制。</p>
<blockquote>
<p>根据不同的 DBMS,<code>RecsMax</code> 和 <code>RecsSkip</code> 可以转换为 SELECT 语句子句(TOP、LIMIT 等),限制服务器端的结果集。如果 DBMS 不支持此类子句,则会在客户端上执行限制。</p>
</blockquote>
<h3 id="firedacstanoptiontfdfetchoptionsrecsskip">FireDAC.Stan.Option.TFDFetchOptions.RecsSkip</h3>
<pre><code class="language-delphi">property RecsSkip: Integer;
</code></pre>
<p><strong>Unit</strong></p>
<p>FireDAC.Stan.Option</p>
<p>控制要获取的第一条记录的偏移量。指定要从单个结果集开头跳过的记录数。默认值为 <em>-1</em>。</p>
<p>要更改已准备好的数据集的 <code>RecsSkip</code>,必须首先调用 <code>Disconnect</code> 方法。</p>
<blockquote>
<p>根据不同的 DBMS,<code>RecsMax</code> 和 <code>RecsSkip</code> 可以转换为 SELECT 语句子句(TOP、LIMIT 等),限制服务器端的结果集。如果 DBMS 不支持此类子句,则会在客户端上执行限制。</p>
</blockquote>
<h3 id="firedaccompdatasettfddatasetdisconnect">FireDAC.Comp.DataSet.TFDDataSet.Disconnect</h3>
<pre><code class="language-delphi">procedure Disconnect(AAbortJob: Boolean = False);
</code></pre>
<p><strong>Unit</strong></p>
<p>FireDAC.Comp.DataSet</p>
<p>中止当前操作并释放此数据集使用的 DBMS 资源。调用后,数据集处于 <code>dsInactive</code> 状态,并且 <code>Prepared</code> 属性设置为 <em>False</em>。</p><br><br>
来源:https://www.cnblogs.com/txgh/p/17707098.html
頁: [1]
查看完整版本: delphi FireDAC 分页查询