In modo frustrante, Microsoft non sembra fornire una risposta univoca su come verificare se la libreria client è presente. La ricerca sul Web e lo sniffing del registro rivelano almeno le seguenti chiavi di registro:
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)
Questo post del blog su MSDN suggerisce che l'utilizzo delle chiavi di registro per rispondere a una domanda correlata (è installato SQL Server Express) è sbagliato, sbagliato, sbagliato e dovresti invece scrivere 200 righe di codice WMI. Gli Approcci WMI sembrano ugualmente privo di documenti e ancora più fragile per me.
Poiché Microsoft consente la ridistribuzione del pacchetto SQL Native Client , forse la scelta migliore è semplicemente includere il file msi nel programma di installazione dell'applicazione ed eseguirlo indipendentemente dal fatto che sia necessario o meno. Consulta questo elenco di sistemi operativi supportati per i vari driver forniti che rivela che esiste anche una versione 10.5(!).
SQLNCLI è installato in parallelo ai driver basati su MDAC, quindi dovrebbe essere sicuro eseguire msiexec
su questo e lascia che si occupi dei dettagli.