asp conn.BeginTrans 事务处理的问题,既有记录集增删更新操作也有connection的execute。怎么办?

oqqen1234 2013-01-27 11:40:28
conn.BeginTrans
set rs=server.createobject("adodb.recordset")
sql="select * from sys_user where userid="&id
rs.open sql,conn,1,3
rs("userkefabu")=rs("userkefabu")+fabushu
rs("kebangdianpu")=rs("kebangdianpu")+dianpushu
username=rs("username")
rs.update
rs.close
set rs=nothing
conn.execute("insert into admin_jilu (caozuozhe, username, caozuo, shijian) VALUES ('"&session("aid")&"', '"&username&"', '增加会员发布数"&fabushu&"个,增加会员可绑定店铺数"&dianpushu&"个', 2)")
if err.number =0 then
conn.CommitTrans
else
conn.RollbackTrans
err.clear
end if

我首先要读取一个表里的一条记录几个值付给变量 然后还有更新这条记录,然后再利用这几个变量利用conn.execute在另一个表里增加记录,我这样的事务处理肯定不行,不能记录没有操作成功,下面的conn.execute同样会执行,哪位有好的实现方法吗,利用事务处理保证这两步操作的一致性!

...全文
118 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hgwyl 2013-03-23
  • 打赏
  • 举报
回复
asp的BeginTrans需要支持…… 我记得以前在哪看见过,一般的虚拟主机提供商不支持这玩意~
fzfei2 2013-01-27
  • 打赏
  • 举报
回复
execute可以通过返回影响的记录来判断有没有执行成功 conn.execute("insert sql" ,rn) if err.number =0 and rn<>0 then conn.CommitTrans '这提交不知会不会产生错误 end if if err.number<> 0 or rn=0 then conn.RollbackTrans err.clear end if
Go 旅城通票 2013-01-27
  • 打赏
  • 举报
回复
事物是保证你的删除和添加操作都全部成功执行后,任何一个出错都会回滚,至于你进行什么操作无所谓了 如添加操作出错了,删除的操作就会被撤销,回滚到原始的状态,并没有删除记录

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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