0

有誰知道如何讓用戶點擊'取消'時InstallAware做回滾數據庫?與InstallShield不同,我沒有看到任何指定個別腳本何時運行的方法。InstallAware數據庫回滾

+0

你確定這不只是自動神奇地完成? InstallAware有時會做一些有趣的事情,我想知道它們是否會以某種奇怪的方式進行回滾。 – 2009-02-25 22:17:31

回答

0

我不認爲InstallAware能夠回滾數據庫事務。我沒有看到他們的MS SQL Server命令中對SQL Server回滾的內在支持。如果可能的話,您需要編寫自己的回滾腳本。

如果用戶在初始對話框中取消安裝,MSICode中通常會有一個帶有IF塊的部分。它看起來像這樣

if variable WIZARD Equals CANCEL 
    Terminate Installation 
end 

這發生在Windows安裝程序引擎實際執行安裝之前。如果您尚未執行數據庫腳本,則不需要執行任何操作。如果在此之前應用了數據庫腳本,則需要提供回滾腳本(如果可能)並在該塊中執行,但在「終止安裝」之前執行。

如果您在安裝時取消安裝,則會再次回退您的更改。當用戶在安裝過程運行時(即在用戶做出選擇之後)按下取消按鈕時,InstallAware變量SUCCESS將被設置爲CANCEL。您可以檢查該情況並執行回滾腳本。通常有一塊代碼根據SUCCESS的價值做各種事情,你可以在那裏添加你的代碼。

作爲安裝的一部分,您始終可以將您的SQL腳本作爲InstallAware執行的最後一個命令。這將消除處理取消的需要。