作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个自定义操作
<CustomAction Id="myActionId" BinaryKey="myAction" DllEntry="MySimpleAction" Execute="immediate" Return="check" />
<InstallExecuteSequence>
<Custom Action="myActionId" After="InstallInitialize">CHECKBOXCOPYPROP=1</Custom>
</InstallExecuteSequence>
我的自定义操作会备份和解析数据库。取消安装时我需要回滚(删除数据库)。我做了:
<CustomAction Id="myActionId" BinaryKey="myAction" DllEntry="MySimpleAction" Execute="immediate" Return="check" />
<CustomAction Id="myActionRollbackId" BinaryKey="myActionRollback" DllEntry="MySimpleAction" Execute="rollback" Return="check" />
<InstallExecuteSequence>
<Custom Action="myActionId" After="InstallInitialize">CHECKBOXCOPYPROP=1</Custom>
<Custom Action="myActionRollbackId" Before="myActionId">CHECKBOXCOPYPROP=1</Custom>
</InstallExecuteSequence>
但是我遇到了错误。
如果我这样做:
<CustomAction Id="myActionId" BinaryKey="myAction" DllEntry="MySimpleAction" Execute="immediate" Return="check" />
<CustomAction Id="myActionRollbackId" BinaryKey="myActionRollback" DllEntry="MySimpleAction" Execute="immediate" Return="check" />
<InstallExecuteSequence>
<Custom Action="myActionId" After="InstallInitialize">CHECKBOXCOPYPROP=1</Custom>
<Custom Action="myActionRollbackId" After="myActionId">CHECKBOXCOPYPROP=1</Custom>
</InstallExecuteSequence>
我的自定义操作 myActionRollbackId 有效。
取消安装后如何运行回滚?有人可以帮助我吗?
最佳答案
应推迟在安装时运行并对数据库执行某些操作的自定义操作 (Execute='deferred'
)。其对应的回滚操作应该是Execute='rollback'
。当您安排这些自定义操作时,应首先执行回滚操作。
此外,请确保条件设置正确。
关于维克斯。取消安装时回滚自定义操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12543196/
我在我的一个 Rails ActiveRecord 模型中添加了一个 before_create 过滤器,在该过滤器中我正在做一些数据库更新。 有时我会从过滤器返回 false 以阻止创建目标模型,但
我有一个示例代码,它创建一个表,在其中插入一些行,然后尝试取消整个事务,但是 conn.rollback() 似乎只对 INSERT 语句有效,而CREATE TABLE 保持不受影响:新创建的表在数
我是一名优秀的程序员,十分优秀!