为什么我的回滚(rollbackTrans)不能成功
conn.beginTrans
for each key in request.form("section")
conn.execute("insert into vdo_book (courseId,[section],userId) values("&request.form("courseId")&","&key&","&session("Id")&")")
conn.execute("update user_workers set balance=balance-"§ionNumber("price")&" where id="&session("Id"))
next
if conn.errors.count>0 then
conn.rollBackTrans
warnning "发生未知错误,提交没有成功!"
end if
set userInfo=conn.execute("select balance from user_workers where id="&session("Id"))
if userInfo("balance")<0 then
conn.rollBackTrans
warnning "对不起,您的余额不足,不能支付!"
else
conn.commitTrans
end if
最后每次根据我自定义的函数出现"对不起,您的余额不足,不能支付!"的错误提示
说明应该执行了conn.rollBackTrans这一句,可是数据库中的数据却显示并没有回滚
这个怎么回事?我应该怎么做?
问题点数:50、回复次数:8Top
1 楼liuxiang_csdn(刘翔)回复于 2004-09-02 11:04:15 得分 0
写成存储过程来执行吧。Top
2 楼LoveSQL(努力奋斗ing)回复于 2004-09-02 11:05:23 得分 0
前面加上这句话
conn.execute("set xact_abort on")Top
3 楼skyboy0720(曲终人散)回复于 2004-09-02 11:12:45 得分 0
建议用数据库的事务比较好些!!!Top
4 楼zjcxc(邹建)回复于 2004-09-02 11:16:38 得分 0
建议写存储过程吧.Top
5 楼yingjm()回复于 2004-09-02 11:19:22 得分 0
warnning "发生未知错误,提交没有成功!"
后面应该加一句退出吧Top
6 楼mqmmx(魂之结界)回复于 2004-09-02 11:21:55 得分 50
加入错误处理看看。
conn.beginTrans
On Error GoTo rob '有错则回滚事务
for each key in request.form("section")
conn.execute("insert into vdo_book (courseId,[section],userId) values("&request.form("courseId")&","&key&","&session("Id")&")")
conn.execute("update user_workers set balance=balance-"§ionNumber("price")&" where id="&session("Id"))
next
if conn.errors.count>0 then
conn.rollBackTrans
warnning "发生未知错误,提交没有成功!"
end if
set userInfo=conn.execute("select balance from user_workers where id="&session("Id"))
if userInfo("balance")<0 then
conn.rollBackTrans
warnning "对不起,您的余额不足,不能支付!"
else
conn.commitTrans
end if
exit sub
rob:
DBconn.RollbackTrans
MsgBox "输入信息有错"
Top
7 楼mqmmx(魂之结界)回复于 2004-09-02 11:23:43 得分 0
写错了,dbconn.rollbacktrans应改为conn.rollbacktransTop
8 楼cxingh()回复于 2004-09-02 11:48:09 得分 0
建议写存储过程吧.
Top




