Thật thất vọng, Microsoft dường như không đưa ra câu trả lời rõ ràng về cách kiểm tra xem thư viện máy khách có hiện diện hay không. Tìm kiếm trên web và dò tìm sổ đăng ký tiết lộ ít nhất các khóa đăng ký sau:
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)
Bài đăng trên blog này tại MSDN gợi ý rằng việc sử dụng các khóa đăng ký để trả lời một câu hỏi liên quan (SQL Server Express đã được cài đặt chưa) là sai, sai, sai và bạn nên viết 200 dòng mã WMI để thay thế. Phương pháp WMI dường như không có giấy tờ như nhau và thậm chí còn mỏng manh hơn đối với tôi.
Vì Microsoft cho phép phân phối lại gói SQL Native Client , có lẽ sự lựa chọn tốt nhất chỉ đơn giản là đưa msi vào trình cài đặt ứng dụng của bạn và chạy nó cho dù có cần thiết hay không. Xem danh sách hệ điều hành được hỗ trợ này để biết các trình điều khiển khác nhau mà họ cung cấp cho thấy có cả phiên bản 10.5 (!).
SQLNCLI được cài đặt song song với các trình điều khiển dựa trên MDAC, vì vậy sẽ an toàn khi chạy msiexec
về điều này và hãy để nó giải quyết các chi tiết.