关于SQL数据库的事务处理

来源:百度知道 编辑:UC知道 时间:2024/05/18 00:13:31
有关商城里的一些问题
第一步要循环读取用户表,第二步把读取到的用户帐号上的余额作一些处理
大体结构如下:
SQL=-------
do while not rs.eof
开始事务处理
'on error resume next
'conn.BeginTrans
---要把读到的用户查找他的购物现金出入表做一定的处理(有一些更新)
---得到处理的一些结果(比如达到一定的交易数量对用户奖励)
---更新用户表
事务处理结束
'if err then
'err.clear
'conn.RollBackTrans
处理失败
'else
'conn.CommitTrans
'end if

rs.movenext
loop
把事务写在外面,里面用循环的话,单用户就有近万了,再加上里面的一些处理,呜呜,那样不光会死机,也会死人的.

最开始时是用的ACCESS数据库,可以这样进行操作.现在更换为SQL SERVER 2000 后,这样就不行了.只能处理第一条,也就是最外层的循环只读一次~!
或者有时候直接给来个提示:致命错误~!
本人英文不好,联机文档一点也看不懂!现在问:
事务处理都有那几种方式?在ASP中如何写?如何启用事务处理?还有,如果想加锁的话,在ASP中,如何写语句加锁?
请给出具体写法!送50分,都写出来了,再加50分~!

如果只对一个表操作,可以采用adLockBatchOptimistic模式,即:
rs.open sql语句,连接,adOpenKeyset,adLockBatchOptimistic
更新的时候不需要事务处理,而是:
do while not rs.eof
rs.edit
rs.fields(...).value=...
rs.update
rs.movenext
loop
rs.updatebatch