sql >> Database >  >> RDS >> Sqlserver

Hoe te controleren of een client de SQLNCLI10-provider heeft geïnstalleerd tijdens het browsen?

Frustrerend genoeg lijkt Microsoft geen eenduidig ​​antwoord te geven over hoe te testen of de clientbibliotheek aanwezig is. Zoeken op het web en registersnuffelen onthult in ieder geval de volgende registersleutels:

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)

Deze blogpost op MSDN suggereert dat het gebruik van registersleutels om een ​​gerelateerde vraag te beantwoorden (is SQL Server Express geïnstalleerd) fout, fout, fout is en dat u in plaats daarvan 200 regels WMI-code moet schrijven. De WMI-benaderingen lijken even ongedocumenteerd en zelfs kwetsbaarder voor mij.

Aangezien Microsoft toestaat dat het SQL Native Client-pakket opnieuw wordt gedistribueerd , is misschien de beste keuze gewoon de msi in het installatieprogramma van uw toepassing op te nemen en deze uit te voeren, of het nu nodig is of niet. Zie deze lijst met ondersteunde besturingssystemen voor de verschillende stuurprogramma's die ze leveren waaruit blijkt dat er ook een versie 10.5(!) is.

SQLNCLI wordt parallel met op MDAC gebaseerde stuurprogramma's geïnstalleerd, dus het zou veilig moeten zijn om msiexec uit te voeren hierover en laat het voor de details zorgen.



  1. SQL Server 2005 en tijdelijk tabelbereik

  2. Opvragen orakel klob kolom

  3. Hoe maak je een reeks in SQL Server 2008

  4. Grails:dataSource-url tijdens runtime wijzigen om databasescheiding met meerdere tenants te bereiken