end; 写了一个TThing类,用于向数据库中添加、修改或删除有关某种东西的记录,调用TDBOperate_DL类完成。为了调用方便,因此有关的事务就放在了TThing类中,外部调用时不用考虑事务了。 procedure Tthing.Drop(const thing:String); var sqlString:String; begin sqlString := 删除的SQL语句; self.DBOperate.BeginTrans; // DBOperate是TDBOperate_DL类型的私有变量,创建Tthing类实例时传入的参数。 try self.DBOperate.Execute(sqlString); self.DBOperate.CommitTrans; except self. DBOperate.RollbackTrans; raise; end; end; 后来又写了个TPerson类,用于向数据库中添加、修改或删除有关人的记录。同样事务放在了TPerson类中,现在我想删除人的记录时顺便调用TThing类删除和人有关的东西,事务问题就出现啦:事务不能嵌套啊。如果先删除TThing,再重新声明事务删除TPerson,如果TPerson出错,还怎么回滚TThing?
|
正在阅读:用Delphi模拟组件的两阶段提交用Delphi模拟组件的两阶段提交
2004-02-14 09:34
出处:CSDN
责任编辑:linjixiong
键盘也能翻页,试试“← →”键