Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Podsumowanie
W tym artykule pokazano, jak potwierdzić, że sterownik Open Database Connectivity (ODBC) jest zainstalowany, zarejestrowany i poprawnie skonfigurowany na komputerze Windows. Użyj go, gdy aplikacja nie może nawiązać połączenia z bazą danych, gdy sterownik ODBC nie jest wyświetlany w administratorze źródła danych ODBC lub w przypadku wystąpienia błędu Data source name not found and no default driver specified (SQLSTATE IM002). Kroki weryfikacji obejmują 32-bitowe i 64-bitowe kopie administratora źródła danych ODBC, nazwę źródła danych (DSN) i wpisy sterownika w rejestrze Windows oraz parametry połączenia, które aplikacja przekazuje do Menedżera sterowników ODBC.
Która kopia administratora źródła danych ODBC powinna zostać otwarta?
W 64-bitowych wersjach systemu Windows istnieją dwie wersje programu Administrator źródeł danych ODBC, a każda z nich zarządza sterownikami i systemowymi nazwami źródeł danych (DSN) odpowiadającymi jej architekturze bitowej:
W przypadku aplikacji 64-bitowych wybierz pozycję Windows+R i wpisz ODBCAD32.EXE lub C:\WINDOWS\SYSTEM32\ODBCAD32.EXE.
W przypadku aplikacji 32-bitowych naciśnij klawisze Windows+R i wpisz C:\WINDOWS\SYSWOW64\ODBCAD32.EXE.
Oba pliki wykonywalne mają nazwę odbcad32.exe, więc ścieżka folderu określa, który plik został otwarty. Zawsze dopasuj narzędzie do bitowości aplikacji nawiązującej połączenie. 32-bitowa aplikacja nie może załadować 64-bitowego sterownika ODBC, a 64-bitowa aplikacja nie może załadować 32-bitowego sterownika ODBC.
Przykłady parametrów połączenia ODBC
Aplikacje korzystające ze sterownika ODBC mogą używać nazw źródeł danych (DSN) lub parametrów połączenia bez DSN. Oto przykłady:
driver={ODBC Driver 18 for SQL Server};server=sqlprod01;database=AdventureWorks;trusted_connection=yesdsn=userdsn1dsn=test;uid=<user name>;pwd=<password>
Pierwszy ciąg połączenia jawnie określa nazwę sterownika, nazwę serwera, nazwę bazy danych i to, czy ma być używane zintegrowane zabezpieczenie (trusted_connection). Jest to połączenie bez użycia DSN.
Drugi i trzeci ciąg połączenia używają DSN, który jest enkapsulacją tych elementów przechowywanych w rejestrze. Nazwa użytkownika i hasło nie mogą być przechowywane w parametrze DSN i muszą zostać podane jawnie. Aby uzyskać więcej informacji na temat atrybutów DSN, zobacz DSN parametry połączenia atrybut.
DSN to mechanizm ułatwiający aplikacjom ładowanie sterownika, zapewniający warstwę pośrednią. Za pomocą nazwy DSN można zmienić serwer, bazę danych, a nawet typ bazy danych, z którą aplikacja łączy się bez zmiany aplikacji.
Nazwa sterownika w parametry połączenia musi być zgodna z nazwą sterownika zarejestrowanego na komputerze. W nazwach sterowników i DSN wielkość liter nie ma znaczenia, ale pisownia i interpunkcja muszą dokładnie odpowiadać. Jeśli żaden zarejestrowany sterownik nie odpowiada, Menedżer sterowników ODBC nie może załadować sterownika.
Uwaga
Sterownik SQL Server (sqlsrv32.dll), który jest dostarczany z Windows, a sterownik klienta natywnego SQL Server (SQL Server Native Client 11.0) nie jest zalecany do tworzenia nowych rozwiązań.
SQL Server Native Client nie jest dostarczany z wersją SQL Server 2022 (16.x) i nowszymi lub SQL Server Management Studio 19 lub nowszymi wersjami. W przypadku nowych połączeń użyj sterownika Microsoft ODBC dla SQL Server, który można pobrać dla Windows, Linux i macOS.
Sprawdź, czy sterownik i DSN widnieją w Administratorze źródeł danych ODBC
Użyj narzędzia Administrator źródeł danych ODBC, aby sprawdzić obecność sterowników ODBC i DSN. Otwórz wersję odpowiadającą bitowości aplikacji, a następnie sprawdź kartę Sterowniki, aby zobaczyć, czy sterownik jest wyświetlany na liście. Na poniższych zrzutach ekranu przedstawiono sterowniki 64-bitowe i 32-bitowe:
Jeśli sterownik widnieje na liście, utwórz testowy DSN na karcie System DSN lub User DSN i przeprowadź test połączenia. Pomyślny wynik testu potwierdza, że sterownik ładuje się poprawnie i że serwer jest dostępny. Jeśli sterownika nie ma na liście, zainstaluj go ponownie, a następnie sprawdź klucze rejestru zgodnie z opisem w następnej sekcji.
Informacje o sterowniku ODBC i numerze DSN w rejestrze
Informacje o sterowniku i numerze DSN są przechowywane w rejestrze:
Na komputerach 64-bitowych przekierowywanie rejestru rozdziela informacje 32-bitowe i 64-bitowe dotyczące sterowników oraz systemowych źródeł danych DSN. Wpis Wow6432Node rejestru przechowuje 32-bitowy sterownik i systemową nazwę DSN. Nazwy DSN użytkowników nie są przekierowywane, więc zarówno narzędzia 32-bitowe, jak i 64-bitowe wyświetlają wszystkie nazwy DSN użytkowników. Odpowiednie klucze to:
-
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC(sterowniki 64-bitowe i nazwy DSN systemu) -
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC(sterowniki 32-bitowe i nazwy DSN systemu) -
HKEY_CURRENT_USER\Software\ODBC(Nazwy DSN użytkownika dla bieżącego użytkownika)
Podklucz ODBC.INI zawiera listę wszystkich nazw DSN i podklucze dla każdej nazwy DSN. Podklucz ODBCINST.INI zawiera listę wszystkich sterowników.
Jeśli wystąpi problem z załadowaniem sterownika przez DSN, sprawdź podklucz ODBC.INI, aby ustalić, którego sterownika używa DSN.
Upewnij się również, że ścieżka sterownika wymieniona w obszarze ODBCINST.INI wskazuje plik DLL, który istnieje na dysku. Wpis rejestru odwołujący się do brakującej lub przeniesionej biblioteki DLL jest częstą przyczyną błędów ładowania po odinstalowaniu, uaktualnieniu lub ręcznym oczyszczeniu pliku. Aby uzyskać nazwy plików i lokalizacje instalowane przez sterownik Microsoft ODBC dla SQL Server, zobacz Wymagania systemowe, instalacja i pliki sterowników.
Uwaga
Wpis LastUser nie ma wpływu na parametry połączenia. Jest używany tylko podczas testowania DSN w Administratorze źródeł danych ODBC.
Rozwiązywanie problemów z błędem IM002: Nie znaleziono nazwy źródła danych i nie określono sterownika domyślnego
Zweryfikuj nazwę serwera, nazwę bazy danych i czy sterownik jest zainstalowany. Jeśli nie można załadować sterownika, zostanie wyświetlony następujący komunikat o błędzie:
BŁĄD [IM002] [Microsoft][ODBC Driver Manager] Nie znaleziono nazwy źródła danych i nie określono domyślnego sterownika.
Ten błąd oznacza, że menedżer sterowników ODBC nie może rozpoznać nazwy DSN ani nazwy sterownika w parametry połączenia. Sprawdź następujące elementy w następującej kolejności:
- Nazwa DSN w parametry połączenia jest zgodna z nazwą DSN wymienioną w administratorze źródła danych ODBC.
- Zainstalowano sterownik pasującej bitowości. DSN użytkownika pojawia się zarówno w narzędziach 32-bitowych, jak i 64-bitowych, ale nawiązanie połączenia kończy się niepowodzeniem, jeśli sterownik, do którego się odwołuje, nie jest zainstalowany w wersji zgodnej z architekturą aplikacji. Aby uzyskać więcej informacji, zobacz Narzędzie administratora ODBC wyświetla zarówno 32-bitowe, jak i 64-bitowe nazwy DSN użytkownika.
- Systemowa nazwa DSN została utworzona w narzędziu odpowiadającym architekturze aplikacji. Systemowe źródła danych DSN podlegają przekierowaniu rejestru, więc systemowe źródło danych DSN utworzone w narzędziu 64-bitowym nie jest dostępne dla aplikacji 32-bitowej.
- Zakres DSN odpowiada kontu uruchamiającego aplikację. Nazwa DSN użytkownika w obszarze
HKEY_CURRENT_USERnie jest widoczna dla usługi działającej na innym koncie. Użyj systemowego DSN dla usług i aplikacji internetowych. - Nazwa sterownika w parametrach połączenia bez użycia DSN jest zgodna ze sterownikiem wymienionym w podkluczu
ODBCINST.INI.
Nawet jeśli ścieżka sterownika w źródle danych DSN jest nieprawidłowa, menedżer sterowników nadal może odnaleźć ją w podkluczu ODBCINST.INI odpowiadającym nazwie sterownika wymienionej w kluczu rejestru ODBC Data Sources.
Jeśli sterownik ładuje się, ale połączenie nadal kończy się niepowodzeniem, problem zwykle dotyczy sieci, uwierzytelniania lub szyfrowania, a nie problemu z instalacją. W przypadku tych objawów zobacz Rozwiązywanie problemów z łącznością w SQL Server.
Obsługa sterowników ODBC innych niż firmy Microsoft
W przypadku sterowników innych niż Microsoft ODBC obsługa Microsoft jest ograniczona do następujących akcji:
- Sprawdź, czy klucze rejestru sterowników są obecne. Jeśli tak nie jest, zainstaluj sterownik lub skontaktuj się z dostawcą.
- Sprawdź, czy ścieżki wskazują plik DLL, który istnieje. Jeśli tego nie zrobią, zainstaluj ponownie sterownik lub skontaktuj się z dostawcą.
- Utwórz testowy identyfikator DSN i przetestuj połączenie.
- Pomóż przechwycić ślad Process Monitor (Procmon), który dostawca będzie mógł przeanalizować.
Zachowanie sterownika, wady sterownika i logika instalacji sterownika pozostają odpowiedzialnością dostawcy, który wyprodukował sterownik.
Zastrzeżenie dotyczące informacji pochodzących od stron trzecich
Produkty innych firm, które omówiono w tym artykule, są produkowane przez firmy niezależne od Microsoft. Microsoft nie udziela żadnych gwarancji, domniemanych lub w inny sposób, dotyczących wydajności lub niezawodności tych produktów.