Создать настройки ODBC во время установки? - PullRequest
1 голос
/ 16 сентября 2009

Традиционно мое клиентское программное обеспечение принудительно конфигурирует источник ODBC, зайдя в «Инструменты администрирования» и вручную создавая новое соединение ODBC.

Есть ли способ настроить новое соединение ODBC во время установки?

В соответствующей заметке, есть ли способ перехватить существующее соединение ODBC для использования в этом теоретическом процессе?

Ответы [ 3 ]

1 голос
/ 16 сентября 2009

Я использовал установщик nullsoft в тот день, и у них есть несколько примеров сценариев.

http://nsis.sourceforge.net/Create_an_ODBC_entry_for_a_MS_Access_database http://nsis.sourceforge.net/Check_whether_an_ODBC_entry_exists

Обычно вы записываете правильные значения в реестр по адресу: HKEY_LOCAL_MACHINE "ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ ODBC \ ODBC.INI \ ODBC Data Sources"

Используйте инструменты реестра, включенные в ваше программное обеспечение для упаковки.

Что вы используете? а какой тип БД?

1 голос
/ 16 сентября 2009

Да, есть. Весь объект ODBC хранится в реестре. Вам просто нужно создать некоторые настройки реестра.

Полагаю, если вы все еще используете ODBC, значит, вы застряли с Microsoft Access. Вот несколько примеров настроек для Access. Если ваш провайдер другой, сообщите нам, и мы тоже поможем с этим.

Скажите, что в этих примерах имя вашего ODBC-соединения - MyODBC.

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources
Key:  "MyODBC"
Value: "Microsoft Access Driver (*.mdb)"

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC
Key: "FIL"
Value: "MS Access;"

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC
Key: "Driver"
Value: "$SYSDIR\odbcjt32.dll"

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC
Key: "Description"
Value: "Description you'd like your users to see in Control Panel"

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC
Key: "UID"
Value: The Access UserName if any.  This is optional.

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC
Key: "DBQ"
Value: The installation directory/YourDB.mdb

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC
Key: "SafeTransactions"
Value: "00000000"

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC
Key: "DriverID"
Value: "00000019"

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC\Engines\Jet
Key: "Threads"
Value: "00000003"

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC\Engines\Jet
Key: "ImplicitCommitSync"
Value: ""

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC\Engines\Jet
Key: "UserCommitSync"
Value: "Yes"

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC\Engines\Jet
Key: "PageTimeout"
Value: "00000005"

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC\Engines\Jet
Key: "MaxBufferSize"
Value: "00000800"

Конечно, какой установщик вы используете, будет точно определять, как они создаются.

0 голосов
/ 16 сентября 2009

Чтобы ответить на мой собственный вопрос ...

Каждый профиль ODBC находится в:

HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI

Профиль содержит следующее:

[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\<ODBC PROFILE NAME>]
"Driver"="C:\\WINDOWS\\system32\\SQLSRV32.dll"
"Server"="<ODBC PROFILE DSN>"
"LastUser"="<LAST USER TO ACCESS ODBC (probably for lock)>"
...