在一个循环中做提示
------------------------
有一个很长的循环。
for i=1 to N'
 rs.insert .....'更新数据库的语句。
  
 label1.caption ="正在进行...XXX"
 或text1.text=="正在进行...XXX"
next i
我想用label或text把当前正在进行的状态显示出来,因为这个过程的计算量很大,要很长时间,导至了跟本看不见label上的字,text上也是不一片空白,跟本看不见状态的变化提示。
这是什么原因,是label和text上的字刷新不过来还是刷新的太快了。怎么能解决一下?for i=1 to N'
 rs.insert .....'更新数据库的语句。
  
  if i mod 100= 0 then doevents  ‘加上这句看看,100这个值供参考,看你的实际速度来取值。
 label1.caption ="正在进行...XXX"
 或text1.text=="正在进行...XXX"
next i=================================
上面的问题解决了,但如果在一个"update" 这样的更新语句中(一次更新的数据量非常大,又出现了label上的字,text上也是不一片空白,窗体有时也不动,象要死机的样子一样,如果解决,而且也没有办法做一个更新进度提示?)

解决方案 »

  1.   

    每次使用Update之前,使用 doevents,同时label1.caption ="正在进行...XXX"就可以正常显示进度
      

  2.   

    使用DoEvents,一般在循环过程中调用他可以消除“假死”现象
      

  3.   

    每次使用Update之前,使用 doevents,同时label1.caption ="正在进行...XXX"就可以正常显示进度
    ---------------------------
    DoEvents以前网上也有朋友这么说的。
    但这次情况不同了。这次
    我只有了一次update语句,这一次更新的数据量非常大。所又来请教了。
      

  4.   

    如果update语句时间太长,可以考虑使用多线程技术,让Update语句在当前程序的进程外执行。