我在做一程序时,用到了TIMER控件定时扫描数据库SQL SERVER(1秒),但是中间执行时间有时不止一秒,我就在TIMER的ONTIMER时间中写了这么一段
TRY
TIMER.ENABLE:=FALSE
FINALLY
TIMER.ENABLE:=TRUE
这样解决了上一次数据库操作还未结束,下一次操作有进来的问题。
现在我想问的是:我在TRYFINALLY中用ADO访问,但是如果在一次查询数据库的时候,由于数据量大(40万条数据),时间耗费比较多(1分钟左右),我的整个界面就好象死了一样,没有反映了。我怎么办?
再说一下,数据库操作也在TRYFINALLY中进行!!
TRY
TIMER.ENABLE:=FALSE
FINALLY
TIMER.ENABLE:=TRUE
这样解决了上一次数据库操作还未结束,下一次操作有进来的问题。
现在我想问的是:我在TRYFINALLY中用ADO访问,但是如果在一次查询数据库的时候,由于数据量大(40万条数据),时间耗费比较多(1分钟左右),我的整个界面就好象死了一样,没有反映了。我怎么办?
再说一下,数据库操作也在TRYFINALLY中进行!!
解决方案 »
- 怎么在设计界面锁定单个控件?
- Adoquery1.locate()?这命令的格式怎么写呀? 如果我要找name='AAA'的记录。
- 如何将程序中的某一窗体置于程序中其他窗体的下面,谢谢!
- 一个数据导入导出的程序!!!!
- 麻烦各位帮我写一个函数,传入一个Int64的参数,然后返回一个0101的二进制字符串。
- 爽~~散分,送序列号
- 动态创建的一批控件,如何添加事件(在线等待,立即给分!!!)
- 中国象棋炮的着法
- 怎样将 Table 构件加到 Data Access 中
- 请问能否在table中实现如‘where name='%jack%''的查询??
- 怎样实现Inf格式的驱动程序的自动安装?
- 帮帮我吧!
不过现在问题不是在这里,我发现主要是在执行ADOQUERY。OPEN时,由于数据量大,一直在查询,等待的时间比较长,因此导致程序无法响应,我想有没有办法在这段时间对前端界面进行重画!
2.可以做个进度条或等待提示什么的
3.在这种情况下避免重绘,用多线程的话用sync...具体的方法忘了,意思是在主线程中进行操作从了避免了VCL未考虑多线程操作的问题。
掌握好打开的数据量·!!!
packetrecords:=10
默认的开始:10条数据。如果需要点:nextpacket!!