PB界面响应问题

小弟通过PB9.0调用SQL Server的存储过程。由于该存储过程的数据运算量比较大,所以导致PB界面没有响应,请问各位大哥有什么方法在用存储过程的同时能够响应窗口的消息,比如点击退出按钮等等。另外,还想请问如果点击了退出按钮,如何通知SQL Server撤销刚才存储过程的操作呢?谢谢各位大哥
[148 byte] By [Limin0305-Marshall] at [2008-6-4]
# 1
yield()
Jonea-魔鬼 at 2007-10-24 > top of Msdn China Tech,PowerBuilder,基础类...
# 2
integer n
sb_interrupt//共享变量
sb_interrupt = false
for n=1 to 3000
yield()
if sb_interrupt then//sb_interrupt 得值在"取消"按钮得clicked事件处理程序中修改
messagebox("调试","用户中断")
sb_interrupt = false
exit
else
.....//
end if
next
"取消"按钮得clicked事件
sb_interrupt = true
amekoxiao-无情 at 2007-10-24 > top of Msdn China Tech,PowerBuilder,基础类...
# 3
1.没法解决,只能等存储过程运行完成!
2.如果要结束,只能通过结束进程的方法结束
3.事务对象有一个选项,COMMIT ON DISCONNECT; 如果中途强行退出,数据是否保存可能会跟此选项有关!
lzheng2001-1加1 at 2007-10-24 > top of Msdn China Tech,PowerBuilder,基础类...
# 4
谢谢两位大哥,不过,小弟写的存储过程是一个批处理,也就是说在这一个存储过程里,一次执行的运算量就非常得大,这个时候窗口不能响应别的消息,有没有办法在这种情况下响应窗口消息,并且在点“取消”按钮的时候,撤销存储过程做的操作呢?
Limin0305-Marshall at 2007-10-24 > top of Msdn China Tech,PowerBuilder,基础类...
# 5
要实现相信很复杂! 我公司的某些报表涉及数据量很大,要运行1个小时才出结果,也只能让用户等待了. 客户没要求我也没研究!
建议优化一下SQL,尽可能缩处理时间!
lzheng2001-1加1 at 2007-10-24 > top of Msdn China Tech,PowerBuilder,基础类...