Как проверить, установлен ли на клиенте поставщик SQLNCLI10 при просмотре? - PullRequest
2 голосов
/ 07 января 2011

У меня есть веб-сайт ac #, который позволяет клиенту напрямую подключаться к удаленной базе данных SQL Server со своего ПК в обход веб-сервера с помощью стороннего элемента управления ActiveX.Первоначально я использовал SQLOLEDB провайдер, и он работал нормально.Клиенты находятся во внутренней сети (с использованием компьютеров Windows и Internet Explorer), а веб-сайт не предназначен для доступа к общему Интернету.

Мне пришлось перейти с использования поставщика SQLOLEDB на SQLNCLI10 провайдер для обслуживания новых типов данных в SQL Server 2008. Он работал на моем ПК, но не работал.Чего я не осознавал, так это того, что он работает, потому что поставщик SQLOLEDB является частью ОС Windows (MDAC / WDAC) и уже существует на компьютере клиента.Поставщик SQLNCLI10 входит в состав SQL Server 2008 и должен устанавливаться отдельно на клиентском компьютере (поскольку на большинстве из них не будет установлен SQL Server, но я его устанавливаю).

Я могу предоставить им ссылку для загрузки автономного поставщика собственного клиента Microsoft SQL Server 2008 , но как мне проверить, установлен ли он на нем уже?

Ответы [ 2 ]

6 голосов
/ 15 сентября 2012

К сожалению, Microsoft, похоже, не дает однозначного ответа о том, как проверить наличие клиентской библиотеки.При поиске в Интернете и перехвате реестра выявляются по крайней мере следующие ключи реестра:

HLKM\SOFTWARE\Microsoft\SQLNCLI11 (key:InstalledVersion)
HLKM\SOFTWARE\Microsoft\SQLNCLI10 (key:InstalledVersion)
HKLM\SOFTWARE\Microsoft\Microsoft SQL Native Client\CurrentVersion (version 9, i presume?)
HLKM\SOFTWARE\Microsoft\Microsoft SQL Server Native Client 10.0\CurrentVersion (key:Version)
HLKM\SOFTWARE\Microsoft\Microsoft SQL Server Native Client 11.0\CurrentVersion (key:Version)

В этом сообщении в блоге на MSDN предлагается использовать ключи реестра для ответа на связанный вопрос (установлен SQL Server Express)неправильно, неправильно, неправильно, и вы должны вместо этого написать 200 строк кода WMI.Подходы WMI кажутся одинаково недокументированными и даже более хрупкими для меня.

Поскольку Microsoft позволяет распространять пакет собственного клиента SQL , возможно, лучший выбор - простоmsi в установщике вашего приложения и запустите его независимо от того, нужно оно или нет.См. этот список поддерживаемых операционных систем для различных драйверов, которые они предоставляют , который показывает, что существует также версия 10.5 (!).

SQLNCLI устанавливается параллельно с драйверами на основе MDAC, поэтомудолжно быть безопасно запустить msiexec на этом и позволить ему позаботиться о деталях.

4 голосов
/ 07 января 2011

Просто проверьте ключи или файлы реестра

  • Реестр: HKLM\SOFTWARE\Microsoft\Sqlncli10
  • Файл: Проверьте наличие sqlncli10.dll в \ System32

ИлиВы также можете использовать WMI

Это также может быть HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\SQLNCLI10\CurrentVersion, где вы можете сравнить версию, например, 10.0.1600.22 по вашей ссылке

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