Как определить имя драйвера ODBC на основе версии SQL Server, установленной на компьютере? - PullRequest
0 голосов
/ 08 октября 2018

Я разработчик базы данных и в настоящее время работаю в технологии SQL Server.Я пытаюсь узнать имя драйвера ODBC на основе установленной версии SQL Server.Вот что я имею в виду - Пример,

Мы используем SQLCMD.exe для выполнения некоторых скриптов через наш пользовательский MSI.Ошибка SQLCMD, если он не находит правильный драйвер ODBC.Следовательно, мы должны быть в состоянии определить правильную версию ODBC на основе установленной версии SQL, чтобы мы могли проверить это перед установкой и предложить пользователю установить правильную версию ODBC в качестве предварительного условия.

У меня уже естьИзучил ниже -

  1. Реестр Windows - Я не получил четкое представление о том, как определить драйверы ODBC на основе версий.Драйверы ODBC и версии SQL Server упоминаются в нескольких местах, и они либо не совпадают между собой, либо с установленной версией SQL Server.
  2. Администрирование -> ODBC Admistrator -> Вкладка Drivers Версия SQL Server здесь дает некоторыеидея, но мы не можем декодировать odbcad32.exe.Ссылка - https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/check-the-odbc-sql-server-driver-version-windows?view=sql-server-2017

Если кто-нибудь что-то знает, то, пожалуйста, помогите.Нам нужно решение с использованием C # (рекомендуется), однако, если есть какая-либо другая технология, мы можем рассмотреть ее возможность.

Заранее спасибо.

1 Ответ

0 голосов
/ 08 октября 2018

Реестр Windows - лучший способ, я не уверен, почему вы видите несоответствия.Есть два основных места для поиска:

Для 64-битных: HKEY_LOCAL_MACHINE \ SOFTWARE \ ODBC \ ODBCINST.INI \ ODBC Drivers

Для 32-битных: HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ ODBCIN \ ODIN \ ODBCДрайверы ODBC

Если вам нужна конкретная версия, вам нужно будет перейти на уровень выше к разделам реестра, имена которых совпадают с именами, перечисленными в драйверах ODBC.Например, в разделе Драйверы ODBC у вас есть ключ «Драйвер ODBC 17 для SQL Server», указанный как установленный, в разделе «ODBCINST.INI» у вас будет запись «Драйвер ODBC 17 для SQL Server», в которой можно найти дополнительную информацию.

Версии драйвера ODBC не связаны с установленной версией SQL.Вполне возможно, что драйвер ODBC был обновлен отдельно и / или установлено несколько версий.

...