使用ADODataSet可以同时处理多条记录,而不保存到数据库中。
  现在的问题是:
    ADODataSet已经和界面上的控件绑定,所以记录的滚动会体现在界面上,但是现在不希望这种情况发生。
  举个例子,比如一个数据集有10条记录,已经和界面上的控件绑定。(同时处理多条记录,而不保存到数据库中。)
  三条记录的Value字段,分别为'1=2=3', '5=6=4','9=0=7';
    问题出来了,先讲一下,Value字段中字符串的含义,其中'='是一个子字符串的分格符,如
'1=2=3'分解之后,是1,2,3;问题是要保证所有记录的Value字段的字符串中子字符串的值不能重复。(不希望滚动体现在界面上)

解决方案 »

  1.   

    汗~~~不知道楼主想问什么……记录的滚动会体现在界面上,但是现在不希望这种情况发生
    --??
    --ADODataSet.DisableControls;
    --Do sth.
    --ADODataSet.EnableControls;
      

  2.   

    ADODataSet1.Locate('keyfields','keyvalues',[]);
      

  3.   

    好像明白了。用个其他DataSet可以实现。procedure searchData(aDataSet: TCustomADODataSet);
    var
      tempData : TCustomADODataSet;
    begin
      tempData := TCustomADODataSet.Create(nil);
      tempData.Clone(aDataSet);
      // tempData.Locate(....)
      // Do Someting
      tempData.Free();
    end;这样就能避免界面的滚动
      

  4.   

    用个其他DataSet可以实现。procedure searchData(aDataSet: TCustomADODataSet);
    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(繁华阅尽) ( ) 
      

  5.   

    我这个方法只能解决后台查询方面的问题。如果是和界面相关的操作,如删除,插入,这个暂时我也没有找到好的办法。
    稍微解决好点就是
    用book + disableControl。但是还是会有抖动。。我也在寻找好方法,不过比较麻烦。。