问题:
lazarus使用unidac+dbgrideh时,发现第一次查询可以正确显示查询的结果,当再次查询时(记录数>1条时),DBGridEH只显示1条记录,如果向下移动时还会出错。
lazarus使用unidac+dbgrideh时,发现第一次查询可以正确显示查询的结果,当再次查询时(记录数>1条时),DBGridEH只显示1条记录,如果向下移动时还会出错。
点费率时只显示1条记录:
这时向下移动会出错:
解决方法:
uniquery查询前设置:
dbgrideh.DataSource:=nil
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;
现在再次查询就可以正常显示相关记录: