Разочароващо, изглежда, че 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 Native Client , може би най-добрият избор е просто да включите msi в инсталатора на вашето приложение и да го стартирате, независимо дали е необходимо или не. Вижте този списък с поддържани операционни системи за различните драйвери, които предоставят което разкрива, че има и версия 10.5(!).
SQLNCLI се инсталира паралелно с MDAC-базирани драйвери, така че трябва да е безопасно да стартирате msiexec
върху това и го оставете да се погрижи за подробностите.