Dengan frustrasi, Microsoft tampaknya tidak memberikan jawaban yang jelas tentang cara menguji apakah pustaka klien ada. Pencarian web dan sniffing registri mengungkapkan setidaknya kunci registri berikut:
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)
Pos blog ini di MSDN menyarankan bahwa menggunakan kunci registri untuk menjawab pertanyaan terkait (apakah SQL Server Express diinstal) salah, salah, salah dan Anda harus menulis 200 baris kode WMI sebagai gantinya. Pendekatan WMI tampaknya sama-sama tidak terdokumentasi dan bahkan lebih rapuh bagi saya.
Karena Microsoft mengizinkan paket SQL Native Client untuk didistribusikan ulang , mungkin pilihan terbaik adalah dengan menyertakan msi di penginstal aplikasi Anda dan menjalankannya apakah diperlukan atau tidak. Lihat daftar sistem operasi yang didukung ini untuk berbagai driver yang mereka sediakan yang mengungkapkan ada juga versi 10.5(!).
SQLNCLI diinstal secara paralel dengan driver berbasis MDAC, jadi seharusnya aman untuk menjalankan msiexec
tentang ini dan biarkan ia mengurus detailnya.