CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

为什么我的回滚(rollbackTrans)不能成功

楼主skywatcher(K_Reverter)2004-09-02 10:57:48 在 MS-SQL Server / 基础类 提问

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-"&sectionNumber("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-"&sectionNumber("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

相关问题

  • 为什么总不能连接成功?
  • CreateThread怎么不能成功啊?
  • 为什么不能汇编成功?
  • TBitmap为何不能加载成功?
  • xmlspy 不能成功解析xsl?
  • exp导出为何不能成功?
  • 编译成功却不能运行?
  • 新手,DLL调用不能成功!
  • 为什么用masm611能link成功的汇编文件不能用masm7.0link成功
  • 为什么DELPHI中图像扫描不能成功?

关键词

  • balance
  • 成功
  • userinfo
  • conn
  • workers
  • execute
  • session
  • where
  • user

得分解答快速导航

  • 帖主:skywatcher
  • mqmmx

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo