Co frustrujące, Microsoft nie wydaje jednoznacznej odpowiedzi, jak sprawdzić, czy biblioteka klienta jest obecna. Wyszukiwanie w sieci i sniffing rejestru ujawnia przynajmniej następujące klucze rejestru:
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)
Ten wpis na blogu w MSDN sugeruje, że użycie kluczy rejestru do odpowiedzi na powiązane pytanie (czy jest zainstalowany SQL Server Express) jest złe, złe, złe i zamiast tego należy napisać 200 wierszy kodu WMI. Wygląda na to, że wydaje się równie nieudokumentowane i jeszcze bardziej kruche dla mnie.
Ponieważ Microsoft zezwala na redystrybucję pakietu SQL Native Client , być może najlepszym wyborem jest po prostu włączenie msi do instalatora aplikacji i uruchomienie go bez względu na to, czy jest to potrzebne, czy nie. Zobacz tę listę obsługiwanych systemów operacyjnych dla różnych dostarczanych sterowników co ujawnia, że istnieje również wersja 10.5(!).
SQLNCLI jest instalowany równolegle ze sterownikami opartymi na MDAC, więc uruchomienie msiexec
powinno być bezpieczne w tej sprawie i niech zajmie się szczegółami.