使用ADODataSet可以同时处理多条记录,而不保存到数据库中。
现在的问题是:
ADODataSet已经和界面上的控件绑定,所以记录的滚动会体现在界面上,但是现在不希望这种情况发生。
举个例子,比如一个数据集有10条记录,已经和界面上的控件绑定。(同时处理多条记录,而不保存到数据库中。)
三条记录的Value字段,分别为'1=2=3', '5=6=4','9=0=7';
问题出来了,先讲一下,Value字段中字符串的含义,其中'='是一个子字符串的分格符,如
'1=2=3'分解之后,是1,2,3;问题是要保证所有记录的Value字段的字符串中子字符串的值不能重复。(不希望滚动体现在界面上)
现在的问题是:
ADODataSet已经和界面上的控件绑定,所以记录的滚动会体现在界面上,但是现在不希望这种情况发生。
举个例子,比如一个数据集有10条记录,已经和界面上的控件绑定。(同时处理多条记录,而不保存到数据库中。)
三条记录的Value字段,分别为'1=2=3', '5=6=4','9=0=7';
问题出来了,先讲一下,Value字段中字符串的含义,其中'='是一个子字符串的分格符,如
'1=2=3'分解之后,是1,2,3;问题是要保证所有记录的Value字段的字符串中子字符串的值不能重复。(不希望滚动体现在界面上)
--??
--ADODataSet.DisableControls;
--Do sth.
--ADODataSet.EnableControls;
var
tempData : TCustomADODataSet;
begin
tempData := TCustomADODataSet.Create(nil);
tempData.Clone(aDataSet);
// tempData.Locate(....)
// Do Someting
tempData.Free();
end;这样就能避免界面的滚动
var
tempData : TCustomADODataSet;
begin
tempData := TCustomADODataSet.Create(nil);
tempData.Clone(aDataSet);
// tempData.Locate(....)
// Do Someting
tempData.Free();
end;Clone是可以解决界面数据集不滚动,定位准确,但
Clone会影响到你正在使用的DataSet,不信你可以试试。
在这个数据集tempData中插入一条数据,然后再删除它,
之后对界面上的数据集作滚动操作,
你会看到少了一条
这可能与clone的dataSet与界面上的dataSet共享数据造成的,
具体是什么原因,我还说不清楚。
你要是感兴趣可以试试,你不会失望的。总之要谢谢你们对我关注:
boatzm(晓舟怕麻烦)【IUnKnown】(#_#!)
Kevin_Lmx(繁华阅尽) ( )
稍微解决好点就是
用book + disableControl。但是还是会有抖动。。我也在寻找好方法,不过比较麻烦。。