Korrelierte Registrierungspfade
- 32 Bit:
HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/ODBC/ODBC.INI
- 64 Bit:
HKEY_LOCAL_MACHINE/SOFTWARE/ODBC/ODBC.INI
Das unten stehende Microsoft KB942976 hat möglicherweise die Antwort auf Ihre Frage.
Ich habe dies selbst nie bemerkt, da die x86- und x64- ODBC-System-DSNs in meinem Fall immer system32/odbcad32.exe
für 32-Bit und SysWow64/odbcad32.exe
für 64-Bit gelten .
Wenn Sie nur Benutzer-DSN verwenden, scheint dies die Microsoft- Problemumgehung auf Server 2008 R2 zu sein . Ich könnte alle auf System-DSNs ändern.
Für Windows 8 und Server 201 2 gibt es die PowerShell Get-OdbcDsn, jedoch nicht für Server 2008 R2 .
Das ODBC-Administrator-Tool zeigt sowohl die 32-Bit- als auch die 64-Bit-Benutzer-DSNs in einer 64-Bit-Version von Windows an
Symptome
Eine 64-Bit-Version des Microsoft Windows-Betriebssystems enthält die folgenden Versionen des ODBC-Datenquellenadministrator-Tools (
Odbcad32.exe
) von Microsoft ( ):
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.Die
Odbcad32.exe
Datei zeigt die folgenden Typen von Datenquellennamen (DSNs) an:
- System-DSNs
- Benutzer-DSNs
Symptom 1
Die 32-Bit-Version des ODBC-Administrator-Tools zeigt 32-Bit-System-DSNs, 32-Bit-Benutzer-DSNs und 64-Bit-Benutzer-DSNs an. Die 64-Bit-Version des ODBC-Administrator-Tools zeigt 64-Bit-System-DSNs, 32-Bit-Benutzer-DSNs und 64-Bit-Benutzer-DSNs an.
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, aber Benutzer-DSNs für 32-Bit-Treiber und 64-Bit-Treiber zurück. Auf ähnliche Weise gibt die SQLDataSources- Funktion, die in einer 64-Bit-Anwendung aufgerufen wird, nur System-DSNs für 64-Bit-Treiber, aber Benutzer-DSNs sowohl für 32-Bit-Treiber als auch für 64-Bit-Treiber zurück. Wenn die Anwendung eine Verbindung herstellt, indem ein Benutzer-DSN verwendet, der von der SQLDataSources- Funktion zurückgegeben wird, wird folgende Fehlermeldung möglicherweise Ihnen angezeigt:
Datenquellenname nicht gefunden und kein Standardtreiber angegeben
Betrachten Sie beispielsweise das folgende Szenario. Sie erstellen einen Benutzer-DSN für den 32-Bit-Treiber "Microsoft Access Driver (* .mdb)". Dieser Treiber hat keine entsprechende 64-Bit-Version. Die SQLDataSources- Funktion, die in einer 64-Bit-Anwendung aufgerufen wird, gibt diesen 32-Bit-Benutzer-DSN zurück. Wenn Sie jedoch eine Verbindung über diesen 32-Bit-Benutzer-DSN herstellen, wird die zuvor in diesem Abschnitt erwähnte Fehlermeldung angezeigt
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. Daher sind Benutzer-DSNs in der 32-Bit- und der 64-Bit-Version des ODBC-Administrator-Tools sichtbar.
Auflösung
Zur Aufrechterhaltung der Abwärtskompatibilität ist derzeit keine Lösung für dieses Problem verfügbar.
Problemumgehung
Verwenden Sie die entsprechende Version des ODBC-Administrator-Tools, um dieses Problem umzugehen. Wenn Sie eine Anwendung als 32-Bit-Anwendung auf einem 64-Bit-Betriebssystem erstellen und dann 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 den 32-Bit-Benutzer-DSNs "_32" und den 64-Bit-Benutzer-DSNs "_64" hinzufügen.
Mehr Informationen
Das 64-Bit-ODBC-Administrator-Tool kann über die 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 (WOW64) -Prozessen verwendet. Sie müssen das 32-Bit-ODBC-Administrator-Tool direkt aus dem Ordner SysWoW64 aufrufen. Mit dem 32-Bit-ODBC-Administrator-Tool können Sie Benutzer-DSNs und System-DSNs 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 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. Das 64-Bit-ODBC-Administrator-Tool zeigt 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-Administrator-Tools alle Benutzer-DSNs an.
Weitere Informationen zur Registrierungsumleitung finden Sie auf der folgenden Website des Microsoft Developer Network (MSDN):