Как пинговать базу данных от NSIS? - PullRequest
0 голосов
/ 25 сентября 2011

Сборка установщика NSIS. (первый раз)

В настоящее время вручную выполняется установка URL-соединения с базой данных и сохранение файла основных свойств соединения в папке под Tomcat.

Чтобы помочь этому, в настоящее время мы используем небольшое приложение JAR, которое помогает пользователю создать этот файл свойств подключения.
Он имеет встроенную функциональность, чтобы попытаться проверить связь с БД. Он помогает пользователям иметь выпадающий список для выбора различных поставщиков / версий БД и, таким образом, помогает в создании URL.

enter image description here

В моем макете, в идеале, я хотел что-то, что покончило с приложением JAR и встроил этот компонент в установщик. Что-то вроде этого: enter image description here

Я уже знаю, что для этого мне нужно будет создать пользовательскую страницу (для этого нужно использовать что-то вроде NSISDialogDesigner).

Бит, в котором я не уверен, является лучшим подходом для проверки связи с базой данных из NSIS, чтобы обеспечить предоставление правильного URL / учетных данных и для возврата ошибок обратно на пользовательскую страницу.

Каков наилучший подход для реализации этой функции в установщике NSIS?

Для справки, как только я достигну этого, более поздним шагом будет создание базы данных, запустив некоторые скрипты SQL, которые у меня есть. Просто подумав заранее, я думаю, какой поставщик / версия базы данных у них будет, будет зависеть от того, какой SQL-скрипт запустить. Я думаю, что если пользователь выбирает, например, SQL Server 2005 на этой странице, это может быть записано в переменную для последующего использования при выборе правильного сценария SQL.

1 Ответ

2 голосов
/ 25 сентября 2011

Лучший способ справиться с этим - написать вспомогательное приложение командной строки, которое вы должны незаметно запустить в фоновом режиме, а затем проверить код завершения на предмет успеха или неудачи.Это вспомогательное приложение может быть Java, C ++, C # или чем угодно, с чем вам удобно.Я работал над несколькими очень большими развертываниями NSIS, и у нас было, возможно, 10-20 таких инструментов, запущенных на разных этапах установки.Для одиночных вызовов API WIN32 NSIS предоставляет P / Invoke-подобную оболочку, но для всего, даже удаленно сложного, лучше использовать вспомогательные приложения.

...