Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana cara memeriksa apakah klien telah menginstal penyedia SQLNCLI10 saat menjelajah?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Isi C# DataTable Secara Asinkron

  2. Tambahkan Offset Zona Waktu ke Nilai datetime2 di SQL Server (T-SQL)

  3. Cara Mendapatkan OBJECT_NAME() dari Database Berbeda di SQL Server

  4. Hubungkan Pengguna Windows yang berbeda di SQL Server Management Studio (2005 atau yang lebih baru)

  5. Bagaimana menjalankan kueri yang sama pada semua database pada sebuah instance?