Создание ODBC DSN с использованием VB.NET - PullRequest
2 голосов
/ 27 марта 2011

Я хочу создать ODBC DSN для базы данных (которая будет включена в папку моего приложения всякий раз, когда пользователь устанавливает приложение).Я хочу знать, как создать ODBC со всеми необходимыми параметрами, чтобы первое, что было сделано при запуске установки, - это подключение базы данных к приложению.Я попытался использовать мастер установки VB.NET по умолчанию и Installshield.

1 Ответ

1 голос
/ 27 марта 2011

Я не знаю ни одного способа создания DSN с помощью установщика или с помощью VB.NET, но используя утилиты Windows, вы можете создать его.

на этой странице показано, как создать DSN в Windows с помощью утилиты командной строки odbcconf, поэтому после создания пакетного сценария, который может создавать DSN в соответствии с требованиями вашего приложения, вы можете запустить выполнение пакета перед вашей установкой копирует файлы на компьютер пользователя. Поэтому после выполнения сценария установка приложения будет продолжена для копирования оставшихся файлов, а после завершения установки и запуска приложения ваше подключение к DSN будет работать должным образом, поскольку DSN теперь создан. Я не работал с InstallShield, хотя, мой опыт работы с NSIS говорит, что выполнение пакетного сценария через установщик наверняка вызовет окно командной строки во время установки, что вам может не понадобиться.

Другой способ избежать отображения окна командной строки - выполнить пакетный скрипт (в режиме без вывода сообщений) при первом запуске приложения, прежде чем оно установит какое-либо соединение с базой данных. Вы можете выполнить свой пакетный файл (.bat), не показывая окно командной строки, используя объект WScript.Shell следующим образом.

Dim batfile As String

batfile = "C:\Program Files\Your App\YouDSNCreationBatchFile.bat"

Set WshShell = CreateObject("WScript.Shell")

cmds = WshShell.RUN("""" & batfile & """", 0, True) 'All Quotes are necessary if file path contains folders with spaces in thier names

Set WshShell = Nothing

Хотя odbcconf может также использоваться непосредственно в VB для создания DSN, но если вы не хотите настраивать код приложения для создания DSN до его подключения, использование пакетного сценария будет отказоустойчивым решением, однако, как я полагаю, вы, возможно, подключили свое приложение в блоке try, поэтому, если вы ловите исключение, которое выдается из-за отсутствия требуемого DSN, этот пакетный скрипт может быть вызван снова, чтобы создать одного или запросить пользователя для того же.

!! ВАЖНО: Как сказано на странице MSDN, утилита odbcconf может быть удалена из будущих версий компонентов доступа к данным Windows, вам следует пересмотреть этот метод, если вы используете его в течение длительного времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...