TSQLConnection的事务处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的事务处理的主要内容,如果未能解决你的问题,请参考以下文章

片段事务中的实例化错误

将 TSQLMonitor 与使用新 ODBC dbExpress 驱动程序的 TSQLConnection 一起使用是不是有技巧?

Spring针对事务处理提供哪两种事务编程模式。

BottomNavigationView 滞后于片段事务

理解片段事务期间片段的生命周期方法调用

提交带有全屏片段的片段事务