首页 > 代码库 > TSQLConnection的事务处理

TSQLConnection的事务处理

数据库的事务处理对保证数据的一致性和完整性至关重要。在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模式。

TSQLConnection的事务处理