CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

嵌套事务

2022-12-31 18:48| 发布者: admin| 查看: 327| 评论: 0|来自: AutoCAD

事务可以是嵌套的,也就是说,您可以在另一个事务中启动一个事务,然后结束或中止最近的事务。事务管理器在堆栈中维护事务,最新的事务位于堆栈顶部。当您使用 启动新事务时,新事务将添加到堆栈顶部,并返回指向它的指针(实例)。当有人调用 or 时,堆栈顶部的事务将结束或中止。AcTransactionManager::startTransaction()AcTransactionAcTransactionManager::endTransaction()AcTransactionManager::abortTransaction()

从对象 ID 获取对象指针时,它们始终与最近的事务相关联。您可以使用获取最近的事务,然后 useor 获取指向对象的指针。事务管理器自动将获取的对象指针与最近的事务相关联。您只能对最近的事务使用。AcTransactionManager::topTransaction()AcTransaction::getObject()AcTransactionManager::getObject()AcTransaction::getObject()

启动嵌套事务时,在外部包含事务中获取的对象指针也可用于最内部事务中的操作。如果最近事务中止,则自最近事务开始以来对所有对象(与此事务或包含的事务相关联)执行的所有操作都将被取消,并且对象将回滚到最近事务开始时的状态。在最近事务中获取的对象指针一旦中止就不再有效。

如果通过调用成功结束最里面的事务,则在此事务中获取其指针的对象将与包含事务相关联,并可用于操作。此过程将继续进行,直到最外层(第一个)事务结束,此时将提交对所有对象的修改。如果中止最外层的事务,则会取消对所有对象的所有操作,并且不会提交任何内容。AcTransactionManager::endTransaction()


路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-19 12:26

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部