请教:DBGridEh双击弹出修改窗口,修改了数据后,返回DBGridEh,要看到最新修改的,我目前使用的方法是ADOQuery.close,ADOQuery.open。用refresh太慢。可是数据量大的话,ADO close和open速度也挺慢的,是否有更好的办法?

解决方案 »

  1.   

    你可以把修改内容更新到ADOQuery中,或者直接把修改窗口和ADOQuery绑定同一个数据集。
      

  2.   

    通过窗口更新数据,获取ModalResult = mbOK,在主窗口重新读取对应记录的数据
    当然,前提是弹出窗口是对单条记录进行修改,如果是批量修改,在数据量大时效率就不行了。
      

  3.   

    修改的窗口和DBGridEh是同一个datasource,窗口为showmodal
      

  4.   

    修改的窗口和DBGridEh是同一个datasource,窗口为showmodal
      

  5.   

    1、DBGridEh所在的窗口与修改窗口用一个数据集
    2、修改窗口中用的是数据感知控件,例如: DBEdit
    3、确定 AdoQuery 的属性 = ltBatchOptimistic,
    4、保存里面写代码:   ADOQuery1.UpdateBatch();
    5、不需要写 Close、Open、Refresh
    6、楼主可以自己写个最简单的例子,测试一下效果