ODBC-Administrator Tool zeigt sowohl die 32-Bit-als auch die 64-Bit-Benutzer-DSNs in einer 64-Bit-Version von Windows an

Dieser Artikel bietet Workarounds für das Problem, das im ODBC Data Source Administrator-Tool auftritt.

Original Version des Produkts:   SQL Server
Ursprüngliche KB-Nummer:   942976

Problembeschreibung

Eine 64-Bit-Version des Microsoft Windows-Betriebssystems umfasst die folgenden Versionen des ODBC Data Source Administrator-Tools (Odbcad32.exe):

  • Die 32-Bit-Version der Odbcad32.exe Datei befindet sich im %systemdrive%\Windows\SysWoW64 Ordner.
  • Die 64-Bit-Version der Odbcad32.exe Datei befindet sich im %systemdrive%\Windows\System32 Ordner.

In der Odbcad32.exe Datei werden die folgenden Typen von Datenquellennamen (DSNs) angezeigt:

  • System-DSNs
  • Benutzer-DSNs

Symptom 1

In der 32-Bit-Version des ODBC-Administrator Tools werden 32-Bit-System-DSNs, 32-Bit-Benutzer-DSNs und 64-Bit-Benutzer-DSNs angezeigt. In der 64-Bit-Version des ODBC-Administrator Tools werden 64-Bit-System-DSNs, 32-Bit-Benutzer-DSNs und 64-Bit-Benutzer-DSNs angezeigt.

Symptom 2

Die SQLDataSources -Funktion gibt alle Versionen von Benutzer-DSNs zurück, unabhängig von der Architektur der Anwendung. Die SQLDataSources Funktion, die in einer 32-Bit-Anwendung aufgerufen wird, gibt nur System-DSNs für 32-Bit-Treiber zurück, gibt jedoch Benutzer-DSNs für 32-Bit-Treiber und 64-Bit-Treiber zurück. Entsprechend gibt die SQLDataSources Funktion, die in einer 64-Bit-Anwendung aufgerufen wird, nur System-DSNs für 64-Bit-Treiber zurück, gibt jedoch Benutzer-DSNs für 32-Bit-Treiber und 64-Bit-Treiber zurück. Wenn die Anwendung eine Verbindung mithilfe eines Benutzer-DSN herstellt, der von der Funktion zurückgegeben wird SQLDataSources , wird möglicherweise die folgende Fehlermeldung angezeigt:

Der Datenquellenname wurde nicht gefunden, und es wurde kein Standardtreiber angegeben.

Sehen Sie sich beispielsweise das folgende Szenario an. Sie erstellen einen Benutzer-DSN für den 32-Bit-Treiber "Microsoft Access Driver (*. mdb)". Dieser Treiber verfügt nicht über eine entsprechende 64-Bit-Version. Die SQLDataSources Funktion, die in einer 64-Bit-Anwendung aufgerufen wird, gibt diese 32-Bit-Benutzer-DSN zurück. Wenn Sie jedoch über diesen 32-Bit-Benutzer-DSN eine Verbindung herstellen, erhalten Sie die Fehlermeldung, die weiter oben in diesem Abschnitt erwähnt wird.

Ursache

Die Benutzer-DSNs werden unter dem folgenden Registrierungsunterschlüssel gespeichert:

HKEY_CURRENT_USER\Software\ODBC\ODBC.INI

Die Registrierungs Umleitung ist für diesen Registrierungsunterschlüssel nicht aktiviert. Daher werden Benutzer-DSNs sowohl in der 32-Bit-als auch in der 64-Bit-Version des ODBC-Administrator Tools angezeigt.

Lösung

Um die Abwärtskompatibilität beizubehalten, ist derzeit keine Lösung für dieses Problem verfügbar.

Problemumgehung

Um dieses Problem zu umgehen, verwenden Sie die entsprechende Version des ODBC-Administrator Tools. Wenn Sie eine Anwendung erstellen und anschließend als 32-Bit-Anwendung auf einem 64-Bit-Betriebssystem ausführen, müssen Sie die ODBC-Datenquelle mithilfe des ODBC-Administrator Tools in %windir%\SysWOW64\odbcad32 . exe erstellen. Um den Typ des DSN anzugeben, können Sie "_32" zu den 32-Bit-Benutzer-DSNs und "_64" zu den 64-Bit-Benutzer-DSNs hinzufügen.

Weitere Informationen

Das 64-Bit-ODBC-Administrator Tool kann in der Systemsteuerung 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-Administrator Tool für Windows auf Windows 64-Prozessen (WOW64) verwendet. Sie müssen das 32-Bit-ODBC-Administrator Tool direkt aus dem Ordner syswow64 aufrufen. Sie können das 32-Bit-ODBC-Administrator Tool 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 Registrierungs Umleitung ist für diesen Registrierungsunterschlüssel aktiviert. Daher werden System-DSNs für 32-Bit-Treiber und für 64-Bit-Treiber getrennt. Das 64-Bit-ODBC-Administrator-Tool zeigt keine System-DSNs an, die vom 32-Bit-ODBC-Administrator Tool erstellt wurden. Auf ähnliche Weise zeigt das 32-Bit-ODBC-Administrator-Tool keine System-DSNs an, die vom 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. Auf ähnliche 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 Registrierungs Umleitung ist für diesen Registrierungsunterschlüssel nicht aktiviert. Daher werden in beiden ODBC-Administrator Tools alle Benutzer-DSNs angezeigt.

Weitere Informationen zur Registrierungs Umleitung finden Sie unter Registry redirectoror.