一个窗口上显示一条记录,用了许多DBGRID,DBCOMBOX,可是只要程序中一有查询的句子(LOCATE)窗口上所显示的数据就会变化,请问有什么方法能克服。如果克服不了只有用EDIT和COMCOBOX了。

解决方案 »

  1.   

    你所使用的是同一个DATASET,所以当新的查询语句执行的时候,数据指针发生移动,那些列表当然会变化。
      

  2.   

    你查询的时候不要用同一个DataSet!
      

  3.   

    查询之前先用 TTable 对象的 DisableConstraints 方法断开连接,查询后再用 EnableConstraints 方法恢复连接。
      

  4.   

    用DisableControls过程,这个过程临时断开数据集与数据源的连接,这样,就算数据集发生变化,关联的数据感知控件也不会随着刷新,如果要恢复与数据源的连接,用EnableControls过程。
      

  5.   

    先用书签记录下当前的记录,然后断开连接,执行locate后,用书签回到原来的记录,然后恢复连接,搞定!还有问题吗?