Я действительно хочу знать, не делаю ли я здесь что-нибудь ужасное. Попытка заменить некоторые из наших пользовательских действий (на которые мы слишком сильно полагаемся) расширениями, которые уже поставляются с Wix. У нас было одно настраиваемое действие, которое выполняло некоторые SQL, но оно было заключено в транзакцию. У меня есть несколько сценариев SQL, которые нужны либо для успешного выполнения, либо для отказа всех - это было легко в настраиваемом действии, потому что я мог просто обернуть все это в транзакцию. По причинам, по которым я не буду здесь описывать go, не так просто добавить begin transaction
и commit transaction
в сам файл сценария - не каждая ошибка откатывает транзакцию, и не каждую ошибку можно отловить в блок try / catch.
Итак, я добавил две строки SqlString вокруг моих основных сценариев SqlScripts - одну с надписью «НАЧАТЬ ТРАНЗАКЦИЮ» и одну с надписью «COMMIT TRANSACTION». ContinueOnError = "no" гарантирует, что фиксация никогда не будет достигнута, если какой-либо из скриптов завершится ошибкой. , не похоже, что это должно вызвать какие-либо проблемы. Есть ли причина не делать этого?