日期:2009-06-06  浏览次数:20460 次

要用到事务了



现在要思考的问题:



1、 造成事务不能提交的原因,是不是有两大类:


(1)数据不配匹

(2)系统原因,以主要有三种情形:

A、容量与内存

B、SQL本身

C、系统其它原因



2、 事务中数据的存储方式,主要有以下问题:

(1) 执行SQL语句后的有哪些数据临时放到哪里了,包括原本的数据吗?

(2) 事务提交过程中原本的数据改变了吗,如果改变了,提交中系统原因造成了中断,数据得回滚过来,它回滚时用到的数据是从哪弄过来的?



3、一次性更新和逐批更新

(1)如果必需要一次性更新的,有什么完善的方案?



4、这样的事务处理能用吗?

Dim cn As SqlClient.SqlConnection

Dim cm As SqlClient.SqlCommand

Dim tr As SqlClient.SqlTransaction



tr = cn.BeginTransaction()

cm.Transaction = tr

Try

While 条件

Try

cm.CommandText = "..."

cm.ExecuteNonQuery()

Catch ex As Exception

End Try

End While

tr.Commit()

Catch ex As Exception

tr.Rollback()

End Try



5、DataRow的RowState是如何配合事务的?