我使用的是UniDAC的TUniQuery组件。我想展示一下我有多少条记录,所以
我已经将以下代码放在状态栏中显示:
procedure TForm1.unyQuery1AfterFetch(DataSet: TCustomDADataSet);
begin
StatusBar1.Panels[1].Text := 'Número de registros: ' + inttostr(unyQuery1.RecordCount);
end;UnyQuery1.RecordCount总是返回零。但是,如果我从一个按钮单击事件运行这段代码,它就能正常工作。
我哪里做错了?
发布于 2015-02-01 00:11:25
使用查询的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;发布于 2021-11-12 13:44:14
尝试将QueryRecCount选项设置为True
UniQuery1.Options.QueryRecCount := True;https://stackoverflow.com/questions/20808028
复制相似问题