各位大侠,我有这样一个需求:
     在做一个比较大的数据查询的时候,SQL语句执行后需要较长的时间
的才能结束,可是在这个过程中,整个程序好象已经没有什么响应了,有
什么办法可以处理一下这样的问题呢,比如我想显示一个类似于LOADING
且带有%式样的东西。
    谢谢

解决方案 »

  1.   

    是 ADO 吗 
    ExecuteOptions eoAsyncExecute 设为True eoAsyncFetchNonBlocking  为True
    再在FetchProgress 事件里面写
      

  2.   

    不是,我用的BDE,最主要的就是当我执行我的查询的时候,整个程序就只有等待了,若我操作其他的程序,比如打开我的电脑,再切换到查询程序的时候,真个界面白花花的一片,很难看的,很是郁闷
      

  3.   

    就是,因为数据量大,而且SQL比较复杂,所以也使得执行速度比较低,可是这些问题都已经尽可能的优化过了,可是还不能彻底解决,所以才想起这样一个折中的办法,不要让用户感觉程序死掉了
      

  4.   

    试试这个办法行不行:
    看一下SQL Server的查询分析器是怎么做的:连接服务器的时候,显示出一个有动画的小窗口,表示程序正在运行 ,而在后台做连接操作!所以我们可以创建一个新的线程来执行动画,然后在未执行查询的时候启动这个线程,然后进行查询,查询结果出来以后把此线程关闭就可以了!当然也可以反过来让查询为一个新的线程,在执行操作的时候,一定要给程序一个机会刷新界面,用Application.processmessage就可以,但是具体把这语句放到哪里研究一下!