刷新过程
procedure TBD_XDJLBQX.RefreshDs;
var
dsS:TDataSet;
begin
dq_dnbmc:=ZYJ_SJJCZHS.TZYJ_SJJCZHS.getSQLResultStr('select ndbmc from DD_NDXWQYB where QYZT=''当前启用'' ');
dsS:=self.DataSetBroker_XDJL.DataSet;
//dsS:=self.InfoBroker1.Info.DataSetByID('SJJ_XDJLB');
// if dsS.Active then
// dsS.Active:=False;
dsS.Close;
dsS.Filter:='sflz=''true'' and (ndbmc='''+dq_dnbmc+''' or ndbmc='''')';
dsS.Filtered:=true;
// if not dsS.Active then
// dsS.Active:=True;
dsS.Open;
self.Label1.Caption:= dq_dnbmc+' 序位表';
end;
//错误提示 的地址每次不同
还有以上如果用active的话错误几乎每次都出现,但如果用close,open 不是每次都会出现,有时候4,5次才出现一次
dsS.Close;
dsS.Filter:='sflz=''true'' and (ndbmc='''+dq_dnbmc+''' or ndbmc='''')';
dsS.Filtered:=true;
// if not dsS.Active then
// dsS.Active:=True;
dsS.Open;
错误先不说,楼主这样些似乎效率上有问题,应该用sqlFilter
dsS.Filter:='sflz=''true'' and (ndbmc='''+dq_dnbmc+''' or ndbmc='''')';
dsS.Filtered:=true;
更改过滤条件也不是这样用的。
应该是
dsS.Filtered:=false;
dsS.Filter:='sflz=''true'' and (ndbmc='''+dq_dnbmc+''' or ndbmc='''')';
dsS.Filtered:=true;
这样数据集就更改了过滤条件,不用关闭打开数据集