Похоже, вы инициировали еще один db.connect в шаге создания таблицы после того, как вы уже инициировали соединение в начале вашего скрипта.
Это двойное инициирование соединения, без какого-либо соединения. End (); закрыть изначально открытое соединение.
Думаю, вам повезет больше, если вы удалите db.connect из шага «создать таблицу».
Пожалуйста, просмотрите эту документацию , чтобы прояснить мою точку зрения.
+1 Lance. Формулировать его иначе и дать еще некоторую информацию
В процессе MSI существует 2 шага
и затем позже
Некоторые дальнейшие размышления
Существует 2 режима, в которых может работать запаздывающее действие
NoImpersonate - иначе NT Authority\System, который имеет полные полномочия на Вашем компьютере
Явитесь олицетворением - кто бы ни начал установку.
С включенным контролем учётных записей Являются олицетворением, имеет строку над заголовком. У Вас только будут стандартный пользовательский маркер и никакие права администратора, даже если пользователь будет на самом деле администратором - поэтому придерживайтесь NoImpersonate, если это возможно, иначе, то Ваше пользовательское действие не сможет сделать что-либо.
Ваше пользовательское действие выполнялось сразу, когда с ним встретились в InstallExecuteSequence; вместо того, когда выполнялся фактический сценарий установки. Это заставило Ваше пользовательское действие выполняться с пользовательскими полномочиями, а не с поднятыми полномочиями системы. Эта серия сообщений в блоге объяснит подробно, что происходит, http://blogs.msdn.com/rflaming/archive/2006/09/23/768146.aspx. У Вас не должно быть пользовательских действий, которые производят состояние машины, которые не работают как задержанные пользовательские действия.