ASP中,大家看一下我这个事务,Etoid和toid是否返回的结果会是百分百得准确的呢?

zhlym 2006-06-07 07:39:09
ASP中,大家看一下我这个事务,Etoid和toid是否返回的结果会是百分百得准确的呢?

conn.open connstr '打开数据库的链接
Etoid=0
toid=0
on error resume next
conn.BeginTrans
for i = 1 to 200
sql="这里是传一些参数给MSSQL2000存储过程,存储过程里为Inser语句"
conn.execute(sql)
if conn.Errors.Count>0 then
conn.Errors.Clear
conn.RollBackTrans
Etoid = Etoid + 1
else
toid = toid+1
end if
next
conn.CommitTrans
...全文
211 8 打赏 收藏 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhlym 2006-06-08
  • 打赏
  • 举报
回复
兔子

我照你的方法做返回也是正确的,而我用我的原来方法返回也是正确的,想不通,如果我的方法不符合罗辑应有可能出现返回不对才是,但我大量测试可返回结果都是正确的
擒兽 2006-06-08
  • 打赏
  • 举报
回复
mark
  • 打赏
  • 举报
回复
conn.BeginTrans
for i = 1 to 200
sql="这里是传一些参数给MSSQL2000存储过程,存储过程里为Inser语句"
conn.execute(sql)
if conn.Errors.Count>0 then
conn.Errors.Clear
conn.RollBackTrans
Etoid = Etoid + 1
else
toid = toid+1
end if
next
conn.CommitTrans

你这个代码创建事务的地方是在循环之前 结束是在循环之后,回滚是在循环之中


for i = 1 to 200
conn.BeginTrans
sql="这里是传一些参数给MSSQL2000存储过程,存储过程里为Inser语句"
conn.execute(sql)
if conn.Errors.Count>0 then
conn.Errors.Clear
conn.RollBackTrans
Etoid = Etoid + 1
else
toid = toid+1
end if
conn.CommitTrans
next

这样才符合逻辑,否则你执行的insert全部都被回滚了
zhlym 2006-06-08
  • 打赏
  • 举报
回复
兔子

给个答复吧
  • 打赏
  • 举报
回复
很简单的一件事,你理解事务么?
zhlym 2006-06-08
  • 打赏
  • 举报
回复
顶,有没人会的?高手何在?
zhlym 2006-06-08
  • 打赏
  • 举报
回复
兔子
我试了你说的去测试,返回也是正确的
  • 打赏
  • 举报
回复
你弄出点错误值来,别在第一个值就错了,等运行了几十次insert之后在运行一个错误的输入,看看回滚

28,402

社区成员

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

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