有人知道如何让InstallAware在用户单击“取消”时对数据库执行回滚吗?与InstallShield不同的是,我看不到任何方法来指定何时运行单个脚本。
发布于 2010-05-18 02:36:48
我不认为InstallAware能够回滚数据库事务。我在他们的MS SQL Server命令中没有看到任何对SQL Server回滚的内在支持。如果可能的话,您需要编写自己的回滚脚本。
如果用户在初始对话框中取消安装,MSICode中通常会有一个IF块。它看起来像这样
if variable WIZARD Equals CANCEL
Terminate Installation
end这发生在Windows Installer引擎实际执行安装之前。如果您尚未执行数据库脚本,则不需要执行任何操作。如果您在此之前已经应用了数据库脚本,则需要提供一个回滚脚本(如果可能)并在该块中执行它,但在终止安装之前。
如果在安装时取消安装,您将有另一次回滚更改的机会。当用户在安装过程运行时按下CANCEL按钮时(即在用户做出任何选择之后),InstallAware变量SUCCESS将被设置为cancel。您可以检查该条件并执行回滚脚本。通常有一个代码块,它根据成功的价值做各种事情,你可以在那里添加你的代码。
在安装过程中,您始终可以将SQL脚本作为InstallAware执行的最后一个命令。这将消除处理取消的需要。
https://stackoverflow.com/questions/582696
复制相似问题