Installatie van ODBC-stuurprogramma controleren

Overzicht

In dit artikel leest u hoe u kunt controleren of een ODBC-stuurprogramma (Open Database Connectivity) is geïnstalleerd, geregistreerd en correct is geconfigureerd op een Windows computer. Gebruik deze wanneer een toepassing geen verbinding kan maken met een database, wanneer een ODBC-stuurprogramma niet wordt weergegeven in de ODBC-gegevensbronbeheerder of wanneer u de fout Data source name not found and no default driver specified (SQLSTATE IM002) ontvangt. De verificatiestappen omvatten de 32-bits en 64-bits kopieën van de ODBC-gegevensbronbeheerder, de DSN-naam (gegevensbronnaam) en stuurprogrammavermeldingen in het Windows register, en de verbindingsreeks die de toepassing doorgeeft aan ODBC-stuurprogrammabeheer.

Welke kopie van de ODBC-gegevensbronbeheerder moet u openen?

In 64-bitsversies van Windows zijn er twee versies van de ODBC-gegevensbronbeheerder, en elke versie beheert de stuurprogramma's en systeem-DSN's die overeenkomen met de bitsversie:

  • Voor 64-bits toepassingen kiest u Windows+R en typt u ODBCAD32.EXE of C:\WINDOWS\SYSTEM32\ODBCAD32.EXE.

  • Voor 32-bits toepassingen drukt u op Windows+R en typ C:\WINDOWS\SYSWOW64\ODBCAD32.EXE.

Beide uitvoerbare bestanden heten odbcad32.exe, dus het mappad bepaalt welk programma u opent. Koppel het hulpprogramma altijd aan de bitness van de toepassing die de verbinding maakt. Een 32-bits toepassing kan geen 64-bits ODBC-stuurprogramma laden en een 64-bits toepassing kan geen 32-bits ODBC-stuurprogramma laden.

Voorbeelden van ODBC-verbindingsreeks

Toepassingen die een ODBC-stuurprogramma gebruiken, kunnen gegevensbronnamen (DSN's) of DSN-loze verbindingsstrings gebruiken. Hier volgen enkele voorbeelden:

  • driver={ODBC Driver 18 for SQL Server};server=sqlprod01;database=AdventureWorks;trusted_connection=yes
  • dsn=userdsn1
  • dsn=test;uid=<user name>;pwd=<password>

De eerste verbindingsreeks geeft expliciet de naam van het stuurprogramma, de servernaam, de databasenaam en of geïntegreerde beveiliging (trusted_connection) moet worden gebruikt. Het is een verbinding zonder DSN.

De tweede en derde verbindingsreeksen gebruiken een DSN, een inkapseling van deze gegevens die in het register zijn opgeslagen. De gebruikersnaam en het wachtwoord kunnen niet worden opgeslagen in de DSN en moeten expliciet worden opgegeven. Raadpleeg DSN-verbindingsreekskenmerk voor meer informatie over DSN-kenmerken.

Een DSN is een snelkoppeling voor toepassingen om het stuurprogramma te laden, wat een niveau van indirectie biedt. Met behulp van een DSN kunt u de server, database en zelfs het databasetype wijzigen waarnaar de toepassing verbinding maakt zonder de toepassing te wijzigen.

De naam van het stuurprogramma in de verbindingsreeks moet overeenkomen met de naam van een stuurprogramma dat is geregistreerd op de computer. Namen van stuurprogramma's en DSN's zijn niet hoofdlettergevoelig, maar de spelling en interpunctie moeten exact overeenkomen. Als er geen geregistreerde stuurprogramma's overeenkomen, kan het stuurprogramma niet worden geladen met ODBC Driver Manager.

Notitie

Het SQL Server stuurprogramma (sqlsrv32.dll) dat wordt geleverd met Windows en het SQL Server Systeemeigen clientstuurprogramma (SQL Server Native Client 11.0) wordt niet aanbevolen voor nieuwe ontwikkeling. SQL Server Native Client wordt niet geleverd met SQL Server 2022 (16.x) en latere versies of SQL Server Management Studio 19 en latere versies. Voor nieuwe verbindingen gebruikt u het Microsoft ODBC-stuurprogramma voor SQL Server, die u kunt downloaden voor Windows, Linux en macOS.

Controleer of het stuurprogramma en de DSN worden weergegeven in de ODBC-gegevensbronbeheerder

Gebruik de ODBC-gegevensbronbeheerder om de aanwezigheid van ODBC-stuurprogramma's en DSN's te controleren. Open de kopie die overeenkomt met de bitheid van uw toepassing en controleer vervolgens het tabblad Stuurprogramma's om te zien of het stuurprogramma wordt vermeld. In de volgende schermafbeeldingen ziet u 64-bits en 32-bits stuurprogramma's:

Schermopname van een 64-bits stuurprogramma.

Schermopname van een 32-bits stuurprogramma.

Als het stuurprogramma wordt vermeld, maakt u een test-DSN op het tabblad System DSN of User DSN en voert u een verbindingstest uit. Een geslaagde test bevestigt dat het stuurprogramma wordt geladen en dat de server bereikbaar is. Als het stuurprogramma niet wordt vermeld, installeert u het stuurprogramma opnieuw en controleert u de registersleutels zoals beschreven in de volgende sectie.

ODBC-driver- en DSN-gegevens in het register

Stuurprogramma- en DSN-gegevens worden opgeslagen in het register:

De schermafbeelding toont de driver- en DSN-gegevens in het register.

Op 64-bitscomputers scheidt registeromleiding de 32-bits- en 64-bitsinformatie voor stuurprogramma's en systeem-DSN's. In de Wow6432Node registervermelding worden de 32-bits stuurprogramma- en systeem-DSN-gegevens opgeslagen. Gebruikers-DSN's worden niet omgeleid, dus zowel de 32-bits als de 64-bits hulpprogramma's geven alle DSN's van gebruikers weer. De relevante sleutels zijn:

  • HKEY_LOCAL_MACHINE\SOFTWARE\ODBC (64-bits stuurprogramma's en systeem-DSN's)
  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC (32-bits stuurprogramma's en systeem-DSN's)
  • HKEY_CURRENT_USER\Software\ODBC (Gebruikers-DSN's voor de huidige gebruiker)

De ODBC.INI subsleutel bevat een lijst met alle DSN's en de subsleutels voor elke DSN. De ODBCINST.INI subsleutel bevat alle stuurprogramma's.

De schermafbeelding toont de subsleutels ODBC.INI en ODBCINST.INI.

Als er een probleem is met het laden van een stuurprogramma via de DSN, controleert u de ODBC.INI subsleutel om te achterhalen welk stuurprogramma de DSN gebruikt.

Schermopname laat zien hoe u kunt achterhalen welk stuurprogramma de DSN gebruikt.

Controleer ook of het stuurprogrammapad dat wordt vermeld onder ODBCINST.INI verwijst naar een DLL-bestand dat op schijf aanwezig is. Een registervermelding die verwijst naar een ontbrekende of verplaatste DLL is een veelvoorkomende oorzaak van laadfouten na het verwijderen, bijwerken of handmatig opschonen van bestanden. Zie Systeemvereisten, installatie en stuurprogrammabestanden voor de bestandsnamen en -locaties van de bestanden die door het Microsoft ODBC-stuurprogramma voor SQL Server worden geïnstalleerd.

Notitie

De vermelding LastUser heeft geen invloed op de verbindingsreeks. Deze wordt alleen gebruikt bij het testen van de DSN in de ODBC-gegevensbronbeheerder.

Fout IM002 oplossen: de naam van de gegevensbron is niet gevonden en er is geen standaardstuurprogramma opgegeven

Valideer de servernaam, databasenaam en of het stuurprogramma is geïnstalleerd. Als het stuurprogramma niet kan worden geladen, wordt het volgende foutbericht weergegeven:

ERROR [IM002] [Microsoft][ODBC Driver Manager] Gegevensbronnaam niet gevonden en er is geen standaardstuurprogramma opgegeven.

Deze fout betekent dat odbc-stuurprogrammabeheer de DSN- of stuurprogrammanaam in de verbindingsreeks niet kan oplossen. Controleer de volgende items in volgorde:

  1. De DSN-naam in de verbindingsreeks komt overeen met een DSN die wordt vermeld in de ODBC-gegevensbronbeheerder.
  2. Er is een stuurprogramma met de overeenkomende bitversie geïnstalleerd. Een gebruikers-DSN verschijnt in zowel de 32-bits- als de 64-bits-hulpprogramma's, maar de verbinding mislukt als het stuurprogramma waarnaar het verwijst niet is geïnstalleerd voor de bitsversie van de toepassing. Zie Het hulpprogramma ODBC-beheerder geeft zowel de 32-bits- als de 64-bits gebruikers-DSN's weer voor meer informatie.
  3. De systeem-DSN is gemaakt in het hulpprogramma dat overeenkomt met de toepassingsbitness. Systeem-DSN's worden door het register omgeleid, dus een systeem-DSN die is gemaakt in het 64-bits hulpprogramma is niet beschikbaar voor een 32-bits toepassing.
  4. Het DSN-bereik komt overeen met het account waarmee de toepassing wordt uitgevoerd. Een gebruikers-DSN onder HKEY_CURRENT_USER is niet zichtbaar voor een service die wordt uitgevoerd onder een ander account. Gebruik een systeem-DSN voor services en webtoepassingen.
  5. De naam van het stuurprogramma in een DSN-less verbindingsreeks komt overeen met een stuurprogramma dat wordt vermeld onder de ODBCINST.INI subsleutel.

Zelfs als het stuurprogrammapad in de DSN onjuist is, kan de stuurprogrammabeheerder het nog steeds vinden in de ODBCINST.INI subsleutel van de stuurprogrammanaam die wordt vermeld in de registersleutel ODBC-gegevensbronnen.

Als het stuurprogramma wordt geladen maar de verbinding nog steeds mislukt, is het probleem meestal betrekking op netwerk, verificatie of versleuteling in plaats van op een installatieprobleem. Zie Connectiviteitsproblemen in SQL Server oplossen voor deze symptomen.

Ondersteuning voor NIET-Microsoft ODBC-stuurprogramma's

Voor niet-Microsoft ODBC-stuurprogramma's is Microsoft ondersteuning beperkt tot de volgende acties:

  • Controleer of de registersleutels van het stuurprogramma aanwezig zijn. Als dat niet het is, installeert u het stuurprogramma opnieuw of raadpleegt u de leverancier.
  • Controleer of de paden verwijzen naar een DLL-bestand dat bestaat. Als dat niet het gebeurt, installeert u het stuurprogramma opnieuw of raadpleegt u de leverancier.
  • Maak een test-DSN en voer een verbindingstest uit.
  • Help een Process Monitor (Procmon)-trace vast te leggen die de leverancier kan analyseren.

Gedrag van stuurprogramma's, defecten van stuurprogramma's en installatielogica van stuurprogramma's blijven de verantwoordelijkheid van de leverancier die het stuurprogramma heeft geproduceerd.

Disclaimer voor informatie van derden

De producten van derden die in dit artikel worden besproken, worden vervaardigd door bedrijven die onafhankelijk zijn van Microsoft. Microsoft geeft geen enkele garantie, expliciet of impliciet, met betrekking tot de prestaties of betrouwbaarheid van deze producten.