ODBCAD.exe dieselbe Datenquelle in system32 und syswow64

658
BendEg

Derzeit möchte ich prüfen, welche ODBC-Datenquellen auf einem Windows Server 2008 R2-Computer konfiguriert sind. Wenn ich öffne system32/odbcad32.exeund SysWow64/odbcad32.exe, enthält sie die gleichen Quellen (64-Bit-Betriebssystem). Wie kann geprüft werden, welche Architektur welche DSN verwendet? In Windows 10 wird dies beispielsweise angezeigt.

Vielen Dank!

2
Hier ist die Microsoft-Antwort auf Ihre Frage, die ich glaube -> [KB942976] (https://support.microsoft.com/de-de/kb/942976). Ich habe dieses myselft nie bemerkt, da die x86- und x64-ODBC-System-DSNs in meinem Fall immer in der anwendbaren System32 / odbcad32.exe für 32-Bit und SysWow64 / Odbcad32.exe für 64-Bit vorhanden sind. Wenn Sie nur "Benutzer-DNS" verwenden, scheint dies die MS-Problemumgehung auf Server 2008 R2 zu sein. Ich könnte alle auf System-DSNs ändern. Für Windows 8 und Server 2012 gibt es die PowerShell `Get-OdbcDsn`, jedoch nicht für 2008 R2. Wenn das hilft, lass es mich wissen und ich füge eine Antwort hinzu. Pimp Juice IT vor 8 Jahren 1
OK danke. Ich habe auch etwas herausgefunden. Sie können in die Registry schauen, wo Sie einen Abschnitt für 32bit und 64bit haben, der einen Knoten für `ODBC.INI` hat. 32Bit: `HKEY_LOCAL_MACHINE / SOFTWARE / Wow6432Node / ODBC / ODBC.INI` und für 64BIT:` HKEY_LOCAL_MACHINE / SOFTWARE / ODBC / ODBC.INI` BendEg vor 8 Jahren 1
@TheFurryITSnuggleBuddy Vielen Dank, dass Sie diese Frage beantwortet haben. Könnten Sie bitte Ihren Kommentar als Antwort hinzufügen, um die gesamte Community zu nutzen und möglicherweise ein wenig näher zu erläutern? Das wäre toll. hot2use vor 6 Jahren 0

1 Antwort auf die Frage

2
Pimp Juice IT

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.exefür 32-Bit und SysWow64/odbcad32.exefü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.exeDatei befindet sich im %systemdrive%\Windows\SysWoW64Ordner.

  • Die 64-Bit-Version der Odbcad32.exeDatei befindet sich im %systemdrive%\Windows\System32Ordner.

Die Odbcad32.exeDatei 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):

http://msdn2.microsoft.com/en-us/library/aa384232.aspx


Weitere Ressourcen