Frustrující je, že Microsoft zřejmě nedává jednoznačnou odpověď na to, jak otestovat přítomnost klientské knihovny. Vyhledávání na webu a čichání registru odhalí alespoň následující klíče registru:
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)
Tento příspěvek na blogu na MSDN naznačuje, že použití klíčů registru k zodpovězení související otázky (je nainstalován SQL Server Express) je špatné, špatné, špatné a měli byste místo toho napsat 200 řádků kódu WMI. Zdá se, že WMI stejně nezdokumentované a pro mě ještě křehčí.
Protože Microsoft umožňuje redistribuci balíčku SQL Native Client , možná nejlepší volbou je jednoduše zahrnout msi do instalačního programu vaší aplikace a spustit jej, ať už je to potřeba nebo ne. V tomto seznamu podporovaných operačních systémů naleznete různé ovladače, které poskytují což ukazuje, že existuje také verze 10.5(!).
SQLNCLI se instaluje paralelně k ovladačům založeným na MDAC, takže by mělo být bezpečné spouštět msiexec
na to a nechte ji, aby se postarala o detaily.