秋·风

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  278 随笔 :: 0 文章 :: 308 评论 :: 20万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
问题:
lazarus使用unidac+dbgrideh时,发现第一次查询可以正确显示查询的结果,当再次查询时(记录数>1条时),DBGridEH只显示1条记录,如果向下移动时还会出错。

 点费率时只显示1条记录:

这时向下移动会出错:

 解决方法:
uniquery查询前设置:
dbgrideh.DataSource:=nil

查询完成后重新设置DataSource
复制代码
procedure TForm1.grdRateValueTitleBtnClick(Sender: TObject; ACol: Integer;
  Column: TColumnEh);
begin
  UniQuery1.Close;
  UniQuery1.SQL.Clear;
  UniQuery1.DisableControls;
  grdRateValue.DataSource:=nil;
  if column.Title.SortMarker=smDownEh then
     UniQuery1.SQL.Text:='select * from Ratevalue   order by '+ column.FieldName
  else
     UniQuery1.SQL.Text:='select * from Ratevalue   order by '+ column.FieldName +' DESC';

  UniQuery1.Open;
  UniQuery1.EnableControls;
  form1.Caption:= UniQuery1.RecordCount.ToString;
  grdRateValue.DataSource:=Datasource1;
end;
复制代码

现在再次查询就可以正常显示相关记录:

posted on   秋·风  阅读(164)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示