InstallAware откат базы данных
Кто-нибудь знает, как заставить InstallAware выполнить откат базы данных, когда пользователь нажимает кнопку "Отмена"? В отличие от InstallShield, я не вижу способа указать, когда запускаются отдельные скрипты.
1 ответ
Я не думаю, что InstallAware сможет откатить транзакцию базы данных. Я не видел встроенной поддержки откатов SQL Server в их команде MS SQL Server. Вам нужно будет написать свой собственный скрипт отката, если это возможно.
Обычно в MSICode есть раздел с блоком IF, если пользователь отменяет установку во время начальных диалогов. Это выглядит примерно так
if variable WIZARD Equals CANCEL
Terminate Installation
end
Это происходит до того, как механизм установщика Windows фактически выполняет установку. Если вы не выполнили сценарии базы данных, никаких действий не требуется. Если вы применяли сценарии базы данных до этого момента, вам нужно будет предоставить сценарий отката (если это возможно) и выполнить его в этом блоке, но до завершения установки.
Если вы отмените установку во время установки, у вас будет еще один шанс откатить изменения. Когда пользователь нажимает кнопку отмены во время процесса установки (т. Е. После того, как пользователь сделал какой-либо выбор), переменная InstallAware SUCCESS будет установлена на CANCEL. Вы можете проверить это условие и выполнить сценарий отката. Обычно есть блок кода, который выполняет различные действия в зависимости от значения SUCCESS, вы можете добавить туда свой код.
Вы всегда можете сделать свой SQL-скрипт последней командой, выполняемой InstallAware в процессе установки. Это исключило бы необходимость обработки отмены.