sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan kontrollerer man, om en klient har SQLNCLI10-udbyderen installeret, når man browser?

Frustrerende nok synes Microsoft ikke at give et entydigt svar på, hvordan man tester, om klientbiblioteket er til stede. Websøgning og registreringssniffing afslører i det mindste følgende registreringsnøgler:

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)

Dette blogindlæg på MSDN foreslår, at det er forkert, forkert, forkert at bruge registreringsdatabasenøgler til at besvare et relateret spørgsmål (er SQL Server Express installeret) og du bør skrive 200 linjer WMI-kode i stedet for. WMI-tilgange synes lige så udokumenteret og endnu mere skrøbelig for mig.

Da Microsoft tillader, at SQL Native Client-pakken omdistribueres , måske er det bedste valg blot at inkludere msi i dit programs installationsprogram og køre det, uanset om det er nødvendigt eller ej. Se denne liste over understøttede operativsystemer til de forskellige drivere, de leverer hvilket afslører, at der også er en version 10.5(!).

SQLNCLI er installeret parallelt med MDAC-baserede drivere, så det burde være sikkert at køre msiexec på dette og lad det tage sig af detaljerne.



  1. MySQL specificer vilkårlig rækkefølge efter id

  2. Hvordan opretter du forberedte udsagn med mysql2-perlen?

  3. Hvordan man bygger relationelle tabeller på en tosidet markedsplads

  4. Vælg alle undtagen den seneste række