一个非常怪异的现象,是存储过程方面的问题??请高手指点!!!,在线等待!!

zx_ali 2002-10-07 04:50:53
我用MS SQL SERVER2000的数据库,在SQL SERVER上写存储过程(check_temp):
insert AB(SNO,A1,A2,A3,A4,B1,B2,B3,B4)
(SELECT A.SNO,A1,A2,A3,A4,B1,B2,B3,B4
FROM A,B
WHERE A.SNO= B.SNO)
pb中调用:
declare check_temp procedure for check_temp
using sqlca;
execute check_temp;
if sqlca.sqlcode= 0 then
commit using SQLCA;
else
rollback using sqlca;
messagebox("","")
end if
不知道为什么?数据就不能插入到AB 的表中??
是不是和SQL SERVER设置有关??如果是,如何设置呢??

...全文
76 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zqllyh 2002-10-08
  • 打赏
  • 举报
回复
补充,当存储过程中会出现锁的时候。比如使用了临时表
zqllyh 2002-10-08
  • 打赏
  • 举报
回复
存储过程不自动提交,死机连连,直到存储过程执行完毕才解锁!
joinkee 2002-10-08
  • 打赏
  • 举报
回复
判断一下 sqlca.sqlcode = 100 的情况

0 表示无错,有数据返回
100 表示无错,没数据返回
bcbhj 2002-10-07
  • 打赏
  • 举报
回复
if sqlca.sqlcode= 0 then
commit using SQLCA;
else
rollback using sqlca;
messagebox("","")
end if
在SQL SERVER中用这玩意要小心

sqlca.autocommit = true

奇遇 2002-10-07
  • 打赏
  • 举报
回复
用这个也行
declare check_temp procedure for check_temp
using sqlca;
sqlca.autocommit = true
execute check_temp;
sqlca.autocommit = false
a2000 2002-10-07
  • 打赏
  • 举报
回复
补充:应在执行前将自动提交置为真
a2000 2002-10-07
  • 打赏
  • 举报
回复
pb中执行存储存过程时应为sqlca.autocommit=true
执行后还原sqlca.autocommit=false
奇遇 2002-10-07
  • 打赏
  • 举报
回复
不是因为去掉可以了,而是因为去了以后,断开连接后自动提交了
这样用也应该没问题的
declare check_temp procedure for check_temp
using sqlca;
execute check_temp;
commit using SQLCA;
zx_ali 2002-10-07
  • 打赏
  • 举报
回复
是的,已经通过的,我去掉:
if sqlca.sqlcode= 0 then
commit using SQLCA;
else
rollback using sqlca;
messagebox("","")
end if
行了,加上就不能执行!为什么??
奇遇 2002-10-07
  • 打赏
  • 举报
回复
在sqlserver的查询分析器中执行可以么?
exec check_temp

1,079

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧