首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > PB >

PB调用的存储过程执行完毕后,依然挂在数据库进程中

2013-11-08 
PB调用的存储过程执行完毕后,仍然挂在数据库进程中integer msgstring sqlmsgmessagebox(问题,确实要运

PB调用的存储过程执行完毕后,仍然挂在数据库进程中


integer msg
string sql



msg=messagebox('问题','确实要运算月销售报表数据吗',question!,yesno!,2) 
 if msg = 2 then return

   cb_2.enabled=false
   sle_1.text='正在运算,请不要关闭窗口...'
   sql = 'sp_sales_report'

   execute immediate :sql using sqlca;

IF SQLCA.SQLCode<>0 THEN
Beep(1)
sle_1.text=SQLCA.SQLerrText
return
ELSE
sle_1.text='恭喜!恭喜!运算完全成功!'
cb_2.enabled=true
END IF 


return



以上是PB中的一个按钮,调用sql = 'sp_sales_report'这个存储过程。
在最后,系统也提示了sle_1.text='恭喜!恭喜!运算完全成功!'

问题:但是在数据库的进程中,该存储过程还在执行,并为堵塞状态,为什么?
我也有做return,哪里有问题?

存储过程单独执行没有任何问题。 PB
[解决办法]
改为以下代码试试

msg=messagebox('问题','确实要运算月销售报表数据吗',question!,yesno!,2) 
 if msg = 2 then return
   cb_2.enabled=false
   sle_1.text='正在运算,请不要关闭窗口...'
   sql = 'sp_sales_report'
 
   execute immediate :sql using sqlca;
 
IF SQLCA.SQLCode<>0 THEN
    rollback;
    Beep(1)
    sle_1.text=SQLCA.SQLerrText
    return
ELSE
   commit using sqlca;
    sle_1.text='恭喜!恭喜!运算完全成功!'
    cb_2.enabled=true
END IF 
 
 
return

热点排行