事务问题,请教高手.

xjzh 2003-12-08 12:18:23
string ls_ryzdh
int li_ryzdh

execute immediate "begin transaction";
//加锁
UPDATE m_zdh
SET zdh = zdh+1
WHERE id_jg = :str_sys.id_xtjg and id_zdh='01';

select zdh into :li_ryzdh from m_zdh where id_jg = :str_sys.id_xtjg and id_zdh='01';

ls_ryzdh=str_sys.qz_ry+right('000000000'+string(li_ryzdh),10)
dw_1.setitem(1,'id_ry',ls_ryzdh)


if dw_1.update()=1 then
execute immediate "commit transaction";
messagebox('提示','数据保存成功!')
return 1
else
execute immediate "rollback transaction";
messagebox('错误','数据保存失败!'+sqlca.sqlerrtext,StopSign!)
return 0
end if

...全文
35 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
bunnysky 2003-12-08
  • 打赏
  • 举报
回复
sql sever没用过帮你顶一下!
xjzh 2003-12-08
  • 打赏
  • 举报
回复
后台是sqlserver2000数据库
jackxrh 2003-12-08
  • 打赏
  • 举报
回复
直接用 commit using sqlca 和 rollback using sqlca
xjzh 2003-12-08
  • 打赏
  • 举报
回复
我的目的是从将m_zdh的zdh(最大号)的值加1,在取出zdh(最大号),赋给数据窗口的'id_ry',保存数据窗口的数据。将以上操作定义为事务,成功则提交,不成功则回滚。
powerdel 2003-12-08
  • 打赏
  • 举报
回复
没有看出你的目的,
不过使用事务时,没有必要execute immediate吧。
至少我没有用
xjzh 2003-12-08
  • 打赏
  • 举报
回复
请高手帮忙

1,108

社区成员

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

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