Das ODBC-Administratortool zeigt in einer 64-Bit-Version von Windows sowohl die 32-Bit- als auch die 64-Bit-Benutzer-DSNs an
Dieser Artikel bietet eine Problemumgehung für das Problem, das im ODBC-Datenquellenadministrator-Tool auftritt.
Ursprüngliche Produktversion: SQL Server
Ursprüngliche KB-Nummer: 942976
Problembeschreibung
Eine 64-Bit-Version des Microsoft Windows-Betriebssystems enthält die folgenden Versionen des ODBC-Datenquellenadministratortools (Odbcad32.exe):
- Die 32-Bit-Version der Datei Odbcad32.exe befindet sich im Ordner
%systemdrive%\Windows\System32
. - Die 64-Bit-Version der Datei Odbcad32.exe befindet sich im Ordner
%systemdrive%\Windows\SysWoW64
.
In der Datei Odbcad32.exe werden die folgenden Typen von Datenquellennamen (Data Source Names, DSNs) angezeigt:
- System-DSNs
- Benutzer-DSNs
Symptom 1
Die 32-Bit-Version des ODBC-Administratortools zeigt 32-Bit-System-DSNs, 32-Bit-Benutzer-DSNs und 64-Bit-Benutzer-DSNs an. Die 64-Bit-Version des ODBC-Administratortools zeigt 64-Bit-System-DSNs, 32-Bit-Benutzer-DSNs und 64-Bit-Benutzer-DSNs an.
Symptom 2
Die Funktion SQLDataSources
gibt alle Versionen von Benutzer-DSNs zurück, unabhängig von der Architektur der Anwendung. Die Funktion SQLDataSources
, die in einer 32-Bit-Anwendung aufgerufen wird, gibt nur System-DSNs für 32-Bit-Treiber zurück, aber sie gibt Benutzer-DSNs für 32-Bit-Treiber und 64-Bit-Treiber zurück. In ähnlicher Weise gibt die Funktion SQLDataSources
, die in einer 64-Bit-Anwendung aufgerufen wird, nur System-DSNs für 64-Bit-Treiber zurück, aber die Benutzer-DSNs für 32-Bit-Treiber und 64-Bit-Treiber. Wenn die Anwendung eine Verbindung über einen Benutzer-DSN herstellt, der von der Funktion SQLDataSources
zurückgegeben wird, wird daher möglicherweise die folgende Fehlermeldung angezeigt:
Der Name der Datenquelle wurde nicht gefunden, und es wurde kein Standardtreiber angegeben
Stellen Sie sich beispielsweise das folgende Szenario vor. Sie erstellen einen Benutzer-DSN für den 32-Bit-Treiber „Microsoft Access-Treiber (*.mdb)“. Dieser Treiber verfügt nicht über eine entsprechende 64-Bit-Version. Die Funktion SQLDataSources
, die in einer 64-Bit-Anwendung aufgerufen wird, gibt diesen 32-Bit-Benutzer-DSN zurück. Wenn Sie jedoch über diesen 32-Bit-Benutzer-DSN eine Verbindung herstellen, wird die Fehlermeldung angezeigt, die weiter oben in diesem Abschnitt erwähnt wurde.
Ursache
Die Benutzer-DSNs werden unter dem folgenden Registrierungsunterschlüssel gespeichert:
HKEY_CURRENT_USER\Software\ODBC\ODBC.INI
Die Registrierungsumleitung ist für diesen Registrierungsunterschlüssel nicht aktiviert. Benutzer-DSNs sind daher sowohl in der 32-Bit- als auch in der 64-Bit-Version des ODBC-Administratortools sichtbar.
Lösung
Um die Abwärtskompatibilität aufrechtzuerhalten, ist derzeit keine Lösung für dieses Problem verfügbar.
Problemumgehung
Um dieses Problem zu umgehen, verwenden Sie die entsprechende Version des ODBC-Administratortools. Wenn Sie eine Anwendung als 32-Bit-Anwendung auf einem 64-Bit-Betriebssystem erstellen und dann ausführen, müssen Sie das Tool %windir%\SysWOW64\odbcad32.exe
ODBC Administrator verwenden, um die ODBC-Datenquelle zu erstellen. Um den DSN-Typ anzugeben, können Sie an die 32-Bit-Benutzer-DSNs „_32“ und an die 64-Bit-Benutzer-DSNs „_64“ anfügen.
Weitere Informationen
Das 64-Bit-ODBC-Administratortool kann von der Systemsteuerung aus aufgerufen werden, um Benutzer-DSNs und System-DSNs zu verwalten, die von 64-Bit-Prozessen verwendet werden. Unter einem 64-Bit-Betriebssystem wird das 32-Bit-ODBC-Administratortool für Prozesse von Windows auf Windows 64 (WOW64) verwendet. Sie müssen das 32-Bit-ODBC-Administrator-Tool direkt aus dem Ordner SysWoW64 aufrufen. Sie können das 32-Bit-ODBC-Administratortool verwenden, um Benutzer-DSNs und System-DSNs zu verwalten, die von WOW64-Prozessen verwendet werden.
System-DSNs werden im folgenden Registrierungsunterschlüssel gespeichert:
HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI
Die Registrierungsumleitung ist für diesen Registrierungsunterschlüssel aktiviert. Daher werden System-DSNs für 32-Bit-Treiber und 64-Bit-Treiber getrennt. Das 64-Bit-ODBC-Administrator-Tool zeigt keine System-DSNs an, die mit dem 32-Bit-ODBC-Administrator-Tool erstellt wurden. Ebenso zeigt das 32-Bit-ODBC-Administrator-Tool keine System-DSNs an, die mit dem 64-Bit-ODBC-Administrator-Tool erstellt wurden. Außerdem zeigt das 64-Bit-ODBC-Administrator-Tool keine System-DSNs an, die 32-Bit-Treiber verwenden. In ähnlicher Weise zeigt das 32-Bit-ODBC-Administrator-Tool keine System-DSNs an, die 64-Bit-Treiber verwenden.
Benutzer-DSNs werden im folgenden Registrierungsunterschlüssel gespeichert:
HKEY_CURRENT_USER\Software\ODBC\ODBC.INI
Die Registrierungsumleitung ist für diesen Registrierungsunterschlüssel nicht aktiviert. Daher zeigen beide ODBC-Administratortools alle Benutzer-DSNs an.
Weitere Informationen zur Registrierungsumleitung finden Sie unter Registrierungsumleitung.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für