为什么会出现 commit transaction请求没有对应的begin transaction这样的问题

macong 2008-12-31 02:49:50
代码如下:
if dw_1.update()=1 then //更新实收表
dw_1.settransobject(sqlca)
select userid,name,useraddr,year,usemonth,operid into :lluserid,:lname,:luseraddr,
:lyear,:lusemonth,:loperid from table_b
commit using sqlca;

lopertime=date(getdate())
select No into:lno from table_c where UserID=:luserid
commit using sqlca;

insert into table_a(id,userid,name,useraddr,year,usemonth,computer,station)
values(x,1,:lname,:luseraddr,:lyear,:lusemonth,xxxxx,xxxxxx)
commit using sqlca;

IF SQLCA.SQLCode = -1 THEN

MessageBox("数据库错误", SQLCA.SQLErrText)
return 1
END IF
commit using sqlca;
messagebox( '提示', '保存成功 ')
return 0
else
rollback using sqlca;
messagebox( '提示', '保存失败 ')
end if
return 1
为什么运行时也执行就是提示:commit transaction 请求没有对应的begin transaction
...全文
1774 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
guolicheng123456 2009-01-02
  • 打赏
  • 举报
回复
还是建议你看下基础知识吧!
这是最基本的问题了~
lllyyymmm 2008-12-31
  • 打赏
  • 举报
回复
macong 2008-12-31
  • 打赏
  • 举报
回复
select就是为了获取update后的数据
liubocy 2008-12-31
  • 打赏
  • 举报
回复
select userid,name,useraddr,year,usemonth,operid into :lluserid,:lname,:luseraddr,
:lyear,:lusemonth,:loperid from table_b ;
commit using sqlca;

lopertime=date(getdate())
select No into:lno from table_c where UserID=:luserid ;
commit using sqlca;

insert into table_a(id,userid,name,useraddr,year,usemonth,computer,station)
values(x,1,:lname,:luseraddr,:lyear,:lusemonth,xxxxx,xxxxxx) ;commit using sqlca;
==============================
少分号了,还有既然已经commit了,再去判断sqlca.sqlcode也没必要的。
jlwei888 2008-12-31
  • 打赏
  • 举报
回复
还有select...后是不用commit;的,没用!
只在在update,delete后先判断sqlca.sqlcdoe,成功才用!
jlwei888 2008-12-31
  • 打赏
  • 举报
回复
晕,
if dw_1.update()=1 then //更新实收表
dw_1.settransobject(sqlca)

竟然更新后才设事务
dw_1.settransobject(sqlca) 这句要放在窗口open事件中

754

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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