zoukankan      html  css  js  c++  java
  • Adoquery.disablecontrols和enablecontrols

    DisableControls方法是在程序修改或后台有刷新记录的时候切断数据组件,如TTABLE、ADOQUERY等等与组件数据源的联系。如果没有切断,数据源中只要一有数据的改动,尤其是批量改动的话,每一笔的改动都会更新窗口中数据浏览组件的显示,这样会急剧减慢处理过程而且浪费时间。EnableControls的作用相反,用来恢复TTABLE等组件与DATASOURCE的联系,并促使数据浏览组件更新显示。
          这两个函数主要阻止组件感应显示,以加快语句执行速度。 比如,用大量的循环的时候,最好用他们。
          1. 数据集的EnableControls, DisableControls方法成对使用的时候, 如果中间的代码可能会导至出错的话必须用try..finaly DisableControls; end; 否则会导致数据感知不控制不可使用;
          2. 在遍历数据或Filter大数据的时候的要用DataSet的EnableControls与DisabbleControls, 否则窗体上的数据感知控件会闪烁.
          enablecontrols,disablecontrols是防止因数据源的改动而造成界面的闪动!在你需要刷新数据时可以调这两个函数,但建议你把它写在
    try...finally语句块中!  
    如:  

    try   
          adoQuery1.disablecontrols;   
          adoQuery1.close;   
          adoQuery1.open;   
    finally   
          adoQuery1.enablecontrols;   
    end; 

    TQuery 的EnableControls 和DisableControls 方法都是继承自TDataSet 类的。由于TTable 和TQuery 都是TDataSet 的派生类,所以它们都有以上这两个方法。

  • 相关阅读:
    yb课堂之自定义异常和配置 《五》
    文件包含总结--2018自我整理
    文件上传总结--2018自我整理
    i春秋 “百度杯”CTF比赛 十月场 web题 Backdoor
    bugku web题INSERT INTO注入
    SCTF2018-Event easiest web
    初识thinkphp(5)
    “百度杯”CTF比赛 九月场 YeserCMS
    初识thinkphp(4)
    0MQ是会阻塞的,不要字面上看到队列就等同非阻塞。
  • 原文地址:https://www.cnblogs.com/cnajian/p/2655843.html
Copyright © 2011-2022 走看看