sql语句执行中的进度条和多线程

pmmhjj 2009-08-13 05:58:45
程序执行这样的一条sql代码,insert into table select ..from table。是从另一数据库中的多张表选择数据。但是执行起来相当慢,程序会死一段时间,所以想加入进度条。查了下要用到多线程,我的大致想法是弹出窗口中让进度条一直滚动,等sql执行完就触发事件让进度条窗口迅速结束,还没有实现,不知道大家有没有什么好想法。
...全文
157 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
pmmhjj 2009-08-14
用游标的话,可能对时间影响会很大。其实我就想在程序不动的这段时间能有个东西在动,让用户觉得程序没有死掉就行了。现在用多线程,感觉上能行,但是处理过程比较复杂,而且线程也不好结束,进度条窗口始终关不掉,程序特别容易真死。不知道大家对多线程了解多少,这里能不能讨论一下。
回复
永生天地 2009-08-14
要想做出进度条的效果,必须要做出一定的牺牲了。

把insert的这句改掉,改成前台游标循环逐行执行,这样可以实现显示进度的功能

但是肯定会慢一些,不过我做项目这几年,因为程序假死而没有任何进度提示,让用户干等,会使用户很不满意,可是加上一个进度条用户可以看到程序在执行,虽然等带时间稍长,用户依然会很容易接受。

楼主要自己考虑取舍了

[Quote=引用楼主 pmmhjj 的回复:]
程序执行这样的一条sql代码,insert into table select ..from table。是从另一数据库中的多张表选择数据。但是执行起来相当慢,程序会死一段时间,所以想加入进度条。查了下要用到多线程,我的大致想法是弹出窗口中让进度条一直滚动,等sql执行完就触发事件让进度条窗口迅速结束,还没有实现,不知道大家有没有什么好想法。
[/Quote]
回复
singsongs 2009-08-14
建议不要用进度条,做一个提示用的Button就可以了,当检索的时候,提示正在检索,检索完毕以后,设置Button的visible属性为FALSE。这样比较方便,而且效率上也不错。
效果就像: 正在检索,请稍候……
回复
永生天地 2009-08-14
我写了一个最简单不过的多线程例子,同时进行两个循环,也没发现会死掉
回复
pmmhjj 2009-08-14
多线程真不是什么好东西,很多函数都不能用,随便用点什么程序就死了,哎。。
都没有什么开拓性的回复,分数浪费了,谁有多线程的好例子给我个看看。
回复
WorldMobile 2009-08-13
你可以试一下多线程,好像多线程也解决不了你这个问题,如果主线程停止响应,其它线程也停止响应了,在PB中是这样的,但在其它语言里就没有这个问题

建议你用进程来实现,即两个程序,主程序在做处理之前用run打开另一个程序,然后进行处理,处理完成后关闭另一个程序即可
回复
lovemoreh 2009-08-13
没有必要用多线程那么复杂啦,用post就好了。

在PB中用多线程很复杂的。
回复
发动态
发帖子
数据库相关
创建于2007-09-28

732

社区成员

PowerBuilder 数据库相关
申请成为版主
社区公告
暂无公告