举例:转账是生活中常见的 *** 作,比如从A账户转账100元到B账号。站在用户角度而言,这是一个逻辑上的单一 *** 作,然而在数据库系统中,至少会分成两个步骤来完成:
1、将A账户的金额减少100元
2、将B账户的金额增加100元。
与程序的区别:一个程序中包含多个事务。在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序。
扩展资料:
事务必须具备四个属性,简称ACID属性:
1、原子性(Atomicity):事务是一个完整的 *** 作。事务的各步 *** 作是不可分的(原子的);要么都执行,要么都不执行。
2、一致性(Consistency):当事务完成时,数据必须处于一致状态。
3、隔离性(Isolation):对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,它不应以任何方式依赖于或影响其他事务。
4、永久性(Durability):事务完成后,它对数据库的修改被永久保持,事务日志能够保持事务的永久性。
参考资料来源:百度百科-事务
事务的好处在于,当你需要对多个表进行相关性 *** 作时,使用BeginTrans()开启事务,然后 *** 作,如果中间哪个表更新出错了,或者数据有问题,你可以用RollBack()方法在取消之前的相关性 *** 作,如果没有错,那就使用Commit()方法提交你的修改。另外,在这个过程中,所有你改动的内容只对你自己有效,别人不能知道你改了什么,也不能对你正在改的表做修改,直到你提交之后,别人才能修改这些表,检索出你修改过的内容。如果只对一个表 *** 作,可以采用adLockBatchOptimistic模式,即:rs.open sql语句,连接,adOpenKeyset,adLockBatchOptimistic
更新的时候不需要事务处理,而是:
do while not rs.eof
rs.edit
rs.fields(...).value=...
rs.update
rs.movenext
loop
rs.updatebatch
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)