Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Sammanfattning
Den här artikeln visar hur du bekräftar att en ODBC-drivrutin (Open Database Connectivity) är installerad, registrerad och korrekt konfigurerad på en Windows dator. Använd den när ett program inte kan ansluta till en databas, när en ODBC-drivrutin inte visas i ODBC-datakälladministratören eller när du får felet Data source name not found and no default driver specified (SQLSTATE IM002). Verifieringsstegen omfattar 32-bitars- och 64-bitarskopiorna av ODBC-datakälladministratören, DSN-posterna (Data Source Name) och drivrutinsposterna i Windows-registret och de reťazec pripojenia som programmet skickar till ODBC Driver Manager.
Vilken kopia av ODBC-datakällsadministratören ska du öppna?
I 64-bitarsversioner av Windows finns det två versioner av ODBC-datakälladministratör, och varje version hanterar de drivrutiner och system-DSN:er som motsvarar respektive bitversion:
För 64-bitarsprogram väljer du Windows+R och skriver ODBCAD32.EXE eller C:\WINDOWS\SYSTEM32\ODBCAD32.EXE.
För 32-bitarsprogram väljer du Windows+R och skriver C:\WINDOWS\SYSWOW64\ODBCAD32.EXE.
Båda körbara objekten heter odbcad32.exe, så mappsökvägen avgör vilken du öppnar. Se alltid till att verktyget motsvarar bittalet för applikationen som upprättar anslutningen. Ett 32-bitarsprogram kan inte läsa in en 64-bitars ODBC-drivrutin och ett 64-bitarsprogram kan inte läsa in en 32-bitars ODBC-drivrutin.
ODBC-anslutningssträng exempel
Program som anropar en ODBC-drivrutin kan använda DSN(Data Source Names) eller DSN-lösa anslutningssträngar. Här följer några exempel:
driver={ODBC Driver 18 for SQL Server};server=sqlprod01;database=AdventureWorks;trusted_connection=yesdsn=userdsn1dsn=test;uid=<user name>;pwd=<password>
Den första anslutningssträng anger uttryckligen drivrutinsnamn, servernamn, databasnamn och om integrerad säkerhet ska användas (trusted_connection). Det är en anslutning utan DSN.
Den andra och tredje anslutningssträng använder ett DSN, som är en inkapsling av dessa objekt som lagras i registret. Användarnamnet och lösenordet kan inte lagras i DSN och måste anges uttryckligen. Mer information om DSN-attribut finns i anslutningssträngattributet DSN.
Ett DSN är en genväg för program att läsa in drivrutinen, vilket ger en nivå av indirektion. Genom att använda ett DSN kan du ändra servern, databasen och till och med databastypen som programmet ansluter till utan att ändra programmet.
Drivrutinsnamnet i reťazec pripojenia måste matcha namnet på en drivrutin som är registrerad på datorn. Namn på drivrutiner och DSN:er är inte skiftlägeskänsliga, men stavning och skiljetecken måste överensstämma exakt. Om ingen registrerad drivrutin matchar kan ODBC Driver Manager inte läsa in drivrutinen.
Kommentar
Drivrutinen SQL Server (sqlsrv32.dll) som levereras med Windows och drivrutinen för den SQL Server interna klienten (SQL Server Native Client 11.0) rekommenderas inte för ny utveckling.
SQL Server interna klienten levereras inte med SQL Server 2022 (16.x) och senare versioner eller SQL Server Management Studio 19 och senare versioner. För nya anslutningar använder du Microsoft ODBC-drivrutin för SQL Server, som du kan ladda ned för Windows, Linux och macOS.
Kontrollera att drivrutinen och DSN visas i ODBC-datakälladministratören
Använd ODBC-datakälladministratören för att verifiera förekomsten av ODBC-drivrutiner och DSN:er. Öppna kopian som matchar programmets bitighet och kontrollera sedan fliken Drivrutiner för att se om drivrutinen visas. Följande skärmbilder visar 64-bitars- och 32-bitarsdrivrutiner:
Om drivrutinen visas skapar du ett test-DSN på fliken System DSN eller Användar-DSN och kör ett anslutningstest. Ett lyckat test bekräftar att drivrutinen läses in och att servern kan nås. Om drivrutinen inte visas installerar du om drivrutinen och kontrollerar sedan registernycklarna enligt beskrivningen i nästa avsnitt.
ODBC-drivrutin och DSN-information i registret
Drivrutins- och DSN-information lagras i registret:
På 64-bitarsdatorer separerar registeromdirigering 32-bitars och 64-bitarsinformation för drivrutiner och system-DSN. Registerposten Wow6432Node lagrar 32-bitarsdrivrutinen och system-DSN-informationen. Användar-DSN:er omdirigeras inte, så både 32-bitars- och 64-bitarsverktygen visar alla användar-DSN:er. De relevanta nycklarna är:
-
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC(64-bitars drivrutiner och system-DSN) -
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC(32-bitars drivrutiner och system-DSN) -
HKEY_CURRENT_USER\Software\ODBC(Användar-DSN för den aktuella användaren)
Undernyckeln ODBC.INI innehåller en lista över alla DSN:er och undernycklarna för varje DSN. Undernyckeln ODBCINST.INI visar alla drivrutiner.
Om det uppstår ett problem med att läsa in en drivrutin via DSN kontrollerar du undernyckeln ODBC.INI för att ta reda på vilken drivrutin som DSN använder.
Bekräfta också att drivrutinssökvägen som anges under ODBCINST.INI pekar på en DLL-fil som finns på disken. En registerpost som refererar till en saknad eller flyttad DLL är en vanlig orsak till belastningsfel efter en avinstallation, en uppgradering eller en manuell filrensning. Information om de filnamn och sökvägar som Microsoft ODBC-drivrutinen för SQL Server installerar finns i Systemkrav, installation och drivrutinsfiler.
Kommentar
Posten LastUser påverkar inte anslutningssträng. Det används bara när du testar DSN i ODBC-datakälladministratören.
Felsöka felet IM002: Det gick inte att hitta namnet på datakällan och ingen standarddrivrutin har angetts
Verifiera servernamnet, databasnamnet och om drivrutinen är installerad. Om drivrutinen inte kan läsas in får du följande felmeddelande:
FEL [IM002] [Microsoft][ODBC Driver Manager] Datakällans namn hittades inte och ingen standarddrivrutin har angetts.
Det här felet innebär att ODBC Driver Manager inte kunde matcha DSN- eller drivrutinsnamnet i reťazec pripojenia. Kontrollera följande objekt i ordning:
- DSN-namnet i reťazec pripojenia matchar ett DSN som anges i ODBC-datakälladministratören.
- En drivrutin med matchande bitversion är installerad. Ett användar-DSN visas i både 32-bitars- och 64-bitarsverktygen, men anslutningen misslyckas om drivrutinen som den pekar på inte är installerad för programmets bitversion. Mer information finns i ODBC-administratörsverktyget visar både 32-bitars och 64-bitars användar-DSN.
- System-DSN skapades i det verktyg som motsvarar programmets bitversion. System-DSN:er omdirigeras till registret, så ett system-DSN som skapats i 64-bitarsverktyget är inte tillgängligt för ett 32-bitarsprogram.
- DSN-omfånget matchar det konto som kör programmet. Ett användar-DSN under
HKEY_CURRENT_USERär inte synligt för en tjänst som körs under ett annat konto. Använd ett system-DSN för tjänster och webbprogram. - Drivrutinsnamnet i en anslutningssträng utan DSN motsvarar en drivrutin som anges under undernyckeln
ODBCINST.INI.
Även om drivrutinssökvägen i DSN är felaktig kan drivrutinshanteraren fortfarande hitta den i undernyckeln ODBCINST.INI från drivrutinsnamnet som anges i odbc-datakällornas registernyckel.
Om drivrutinen läses in men anslutningen fortfarande misslyckas är problemet vanligtvis nätverks-, autentiserings- eller krypteringsproblem i stället för ett installationsproblem. De här symptomen finns i Felsöka anslutningsproblem i SQL Server.
Stöd för icke-Microsoft ODBC-drivrutiner
För icke-Microsoft ODBC-drivrutiner är Microsoft stöd begränsat till följande åtgärder:
- Kontrollera om drivrutinsregisternycklarna finns. Om de inte är det installerar du om drivrutinen eller kontaktar leverantören.
- Kontrollera om sökvägarna pekar på en DLL-fil som finns. Om de inte gör det installerar du om drivrutinen eller kontaktar leverantören.
- Skapa ett test-DSN och utför ett anslutningstest.
- Hjälp till att samla in en Process Monitor-spårning (Procmon) som leverantören kan analysera.
Drivrutinsbeteende, drivrutinsfel och drivrutinsinstallationslogik förblir ansvaret för leverantören som producerade drivrutinen.
Ansvarsfriskrivning för information från tredje part
De produkter från tredje part som beskrivs i den här artikeln tillverkas av företag som är oberoende av Microsoft. Microsoft ger ingen garanti, uttrycklig eller underförstådd, angående prestandan eller tillförlitligheten hos dessa produkter.