簡體   English   中英

帶有 UniDAC 數據集組件的 RecordCount

[英]RecordCount with UniDAC Dataset component

我正在使用 UniDAC 的 TUniQuery 組件。 我想顯示我有多少記錄,所以

我已將以下代碼顯示在狀態欄中:

procedure TForm1.unyQuery1AfterFetch(DataSet: TCustomDADataSet);
begin
    StatusBar1.Panels[1].Text := 'Número de registros: ' + inttostr(unyQuery1.RecordCount);
end;

UnyQuery1.RecordCount 始終返回零。 但是,如果我從按鈕單擊事件運行此代碼,則它可以工作。

我做錯了什么?

使用查詢的AfterOpen事件而不是AfterFetch。

procedure TForm1.UniQuery1AfterOpen(DataSet: TDataSet);
begin
StatusBar1.Panels[1].Text:= 'Records: ' + inttostr(uniQuery1.RecordCount);
end;

同樣來自devart:

對於ClientDataSet中的數據獲取過程的映射,應將ClientDataSet.PacketRecord屬性設置為UniQuery.FetchRows並使用ClientDataSet.GetData事件進行數據獲取過程的映射

procedure TForm1.Button1Click(Sender: TObject);
begin
ClientDataSet1.PacketRecords := 25;
ClientDataSet1.Open;
  while not ClientDataSet1.eof do
    ClientDataSet1.next;
end;

procedure TForm1.DataSetProvider1GetData(Sender: TObject;
  DataSet: TCustomClientDataSet);
begin
if ClientDataSet1.Active then ShowMessage(IntToStr(ClientDataSet1.RecordCount));
end;

嘗試將 QueryRecCount 選項設置為 True

UniQuery1.Options.QueryRecCount := True;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM