数据库的事务处理对保证数据的一致性和完整性至关重要。在delphi中调用SQLConnection1.StartTransaction(TransDesc:TTransactionDesc)开始事务,SQLConnection1.Commit(TransDesc:TTransactionDesc)完成事务,SQLConnection1.Rollback(TransDesc:TTransactionDesc)回滚到事务之前的状态。SQLConnection可嵌套事务,如果数据源支持的话。

TTransactionDesc = packed record
     TransactionID    : LongWord;//指定唯一事务ID,就像WIN中的PID不能有重复
     GlobalID         : LongWord;//Oracle中的全局事件ID
     IsolationLevel   : TTransIsolationLevel;//不同事件间的隔离程度
     CustomIsolation  : LongWord;//如果IsolationLevel为xilCustom,则CustomIsolation必须被指定
end;
TTransIsolationLevel:
xilDIRTYREAD//目前的事务可以获取到其它事务在未Commit前对于数据的修改。会出现脏读、不可重复读、幻读。
xilREADCOMMITTED//只获取到已被其它事务Commit后的修改的数据。 会出现不可重复读、幻读问题。
xilREPEATABLEREAD//能获取到当前事件激活前已被其它事务Commit后的数据。会出幻读。
xilCUSTOM//定制TransIsolationLevel
驱动默认设置为xilREADCOMMITTED模式。
posted on 2017-03-10 20:09  sun繁星点点  阅读(1118)  评论(0编辑  收藏  举报