InstallAware数据库回滚

时间:2009-02-24 17:31:35

标签: installer installation-package installaware database-installation

当用户点击“取消”时,是否有人知道如何使InstallAware回滚数据库?与InstallShield不同,我没有看到任何方式指定何时运行单个脚本。

1 个答案:

答案 0 :(得分:0)

我认为InstallAware无法回滚数据库事务。我没有在他们的MS SQL Server命令中看到对SQL Server回滚的任何内在支持。如果可能的话,您需要编写自己的回滚脚本代码。

如果用户在初始对话期间取消安装,则MSICode中通常有一个具有IF块的部分。它看起来像这样

if variable WIZARD Equals CANCEL
    Terminate Installation
end

这在Windows Installer引擎实际执行安装之前发生。如果尚未执行数据库脚本,则无需执行任何操作。如果在此之前已应用数据库脚本,则需要提供回滚脚本(如果可能)并在该块中执行,但在终止安装之前。

如果您在安装时取消安装,则会再次回滚您的更改。当用户在安装过程运行时按下取消按钮时(即在用户做出任何选择之后),InstallAware变量SUCCESS将被设置为CANCEL。您可以检查该条件并执行回滚脚本。通常会有一段代码根据SUCCESS的值来执行各种操作,您可以在那里添加代码。

作为安装的一部分,您始终可以将您的SQL脚本作为InstallAware执行的最后一个命令。这将消除处理取消的需要。