我想问一下什么时候使用这两个过程比较合适?
我不会用这两个过程,
平常我对数据库的操作都没有使用过这两个过程,
这两个过程的作用是什么?

解决方案 »

  1.   

    adotable.disablecontrols;
    try
       adotable.open;
    finally
       adotable.enablecontrols;
    end;加快查询速度
      

  2.   

    DisableControls方法是在程序修改或后台有刷新记录的时候切断数据组件,如TTABLE、ADOQUERY等等与组件数据源的联系。如果没有切断,数据源中只要一有数据的改动,尤其是批量改动的话,每一笔的改动都会更新窗口中数据浏览组件的显示,这样会急剧减慢处理过程而且浪费时间。EnableControls的作用相反,用来恢复TTABLE等组件与DATASOURCE的联系,并促使数据浏览组件更新显示。一楼的示例很好的。
      

  3.   

    如楼上所说,enablecontrols,disablecontrols是防止因数据源的改动而造成界面的闪动!在你需要刷新数据时可以调这两个函数,但建议你把它写在try...finally语句块中!
    如:
    try
      adoQuery1.disablecontrols;
      adoQuery1.close;
      adoQuery1.open;
    finally
      adoQuery1.enablecontrols;
    end;
      

  4.   

    主要还是当窗口中有DBGRID等组件时,如果DATASOURCE与ADOQUERY连接,DBGRID又和DATASOURCE连接时,如果对DATASET进行大批更新时,DBGRID等会一直刷新,这样即消耗资源又影响速度,所以这时要用到这两个过程.在大批更新前用DISABLECONTROLS中断显示,在更新后用ENABLECONTROLS,重新显示.OK???
      

  5.   

    多谢各位大哥指教,
    在经过你们详细的解释后,我对这两个过程有了一定的认识,
    但是我还有一点疑问:
    disablecontrols and enablecontrols
    它们针对的是基层数据库的开锁和解锁呢?还是对adotable(adoquery)所提取的数据集进行开解锁操作呢?