HowTo: ODBC 32-Bit / 64-Bit

Seit Windows 2003 findet die 64-Bit Version der Betriebssysteme immer größere Verbreitung. Den aktuellen Windows 2008 R2 Server gibt es nur noch als 64-Bit Version. Die Gründe sind bekannt und sprechen für 64-Bit.
Jetzt müssen wir mit Anwendungen, die über die ODBC Schnittstelle auf Datenbanken zugreifen aufpassen, sonst gibt es prompt, die Fehlermeldung:
Folgende(r) Fehler trat(en) auf:
[Microsoft][ODBC Driver Manager] Der angegebene DSN weist eine nicht übereinstimmende Architektur von Treiber und Anwendung auf

Diese Meldung erscheint, wenn eine 32-Bit Anwendung über einen 64-Bit ODBC-Treiber versucht auf die Datenbank zuzugreifen, oder umgekehrt.
Jetzt hat leider Microsoft unter Systemsteuerung -> Verwaltung lediglich zugriff auf die 64-Bit Version von ODBC vorgesehen. Wenn ich aber einen 32-Bit Konnektor installiere, taucht er dort nicht auf und kann dort auch nicht eingerichtet werden.

Folgende Schritte helfen hier weiter:

Taucht im Taskmanager hinter dem Namen der Anwendung ein *32 auf, handelt es sich um eine 32-Bit Anwendung, die auch einen 32-Bit ODBC-Konnektor verlangt. Also werden zunächst die 32Bit ODBC-Treiber installiert. Danach geht es über C:\Windows\SysWOW64\odbcad32.exe (nicht durch SysWOW64 verwirren, es ist der 32-Bit System32 Ordner) zum 32-Bit ODBC-Schnittstelle. Hier den Konnektor sauber einrichten und schon läuft die 32-Bit Anwendung mit Datenbank-Anbindung sauber.

Befindet sich im Taskmanager hinter dem Namen der Anwendung kein *32, handelt es sich um eine 64-Bit Anwendung. Hier kann die Konfiguration der ODBC Konnektoren unter Systemsterung -> Verwaltung oder direkt durch Aufruf von C:\Windows\System32\odbcad32.exe (nicht durch die 32 irritiren lassen, es ist der 64-Bit Teil des OS) erfolgen.

16 Comments

  • Florian Schmidt
    1. Oktober 2010 - 16:49 | Permalink

    Herzlichen Dank für den Artikel durch das odbcad32.exe konnte ich die ODBC Verbindung auf 32bit korrekt umstricken.

    DANKE!!
    Florian

  • Hauke
    25. März 2011 - 16:33 | Permalink

    Vielen Dank. Diese Lösung rettet mein Wochenende!

  • Matthias
    18. April 2011 - 23:01 | Permalink

    Großartig! Vielen Dank für den Tipp! Ich hätte sonst wahrscheinlich die ganze Anwendung neu geschrieben!!

  • Klaus
    17. September 2011 - 19:59 | Permalink

    Danke für den Tipp !
    Ist aber von Microsoft schon reichlich gaga: Das Programm für 32 Bit ist in einem Ordner, der mit 64 aufhört, und das Programm für 64 Bit ist in einem Ordner der mit 32 aufhört.

  • Kurt C. Hose
    10. November 2011 - 13:09 | Permalink

    Danke! — Hat uns sehr, sehr weiter geholfen.

  • Thomas
    28. November 2011 - 15:39 | Permalink

    Herzlichen Dank auch von mir!
    Ohne diesen Beitrag hätte ich mir wohl einen Wolf gesucht…..

  • 27. Dezember 2011 - 12:25 | Permalink

    Super, vielen Dank. Bei Microsoft oder MS-SQL Hilfe stand nichts.

  • Tobias
    12. Januar 2012 - 15:55 | Permalink

    Perfekt! Vielen Dank! Hab schon wie ein Bekloppter gesucht, wo der Fehler liegt.

  • chris
    5. Mai 2012 - 10:39 | Permalink

    Herrliches MS-Paradoxon.

    Danke für den Tipp. Aber was ist, wenn ich aus einem 32-Bit-Progrmm (MS Excel) heraus auf eine 64-Bit Datenquelle (Mysql) per ODBC zugreifen will ? Brauch ich den Connector in 32 oder 64 Bit?

  • Franzi
    25. Juni 2012 - 16:45 | Permalink

    Vielen Dank auch von mir!
    War kurz vorm Verzweifeln 🙂

  • David
    20. Dezember 2012 - 16:01 | Permalink

    FUCK YEAH!
    eine Woche lang habe ich mich mit den verdammten heterogenen Diensten von Oracle rumgepruegelt, nichts hat sie zum Laufen gebracht.
    Und dann stosse ich auf diesen Blogeintrag mit dem Hinweis auf den SysWOW64 ordner und die darin befindliche odbcad32.exe. Als ich sie gestartet hatte wurde mir auch klar warum ich bisher nur so wenige ODBC Treiber im ODBC Administrator hatte.
    Jetzt funktioniert alles.
    Thank you good sir, you made my day 😀

  • Gin Lemon
    4. März 2013 - 14:24 | Permalink

    Alt aber gut, durch eine Umstellung von WinXP auf 7 auf der Arbeit ist das Problem aufgetreten, Danke für die Rettung!

  • Himmelauferden
    16. Mai 2013 - 09:04 | Permalink

    Danke für den Hinweis. Hilft auch unter Windows 8 noch.

  • Thomas Burgard
    21. Oktober 2013 - 08:15 | Permalink

    Hallo,
    wie ich an den 32-Bit-Treiber komme, hatte ich schon herausgefunden.
    Auf meinem „alten“ Server lief auch alles.
    Nun musste ich Aufgrund ner dummen Geschichte letzte Woche einen neuen Server (wieder Windows2008 R2) aufsetzen und wollte es alles so machen wie immer.
    Trotz der korrekten Einrichtung der ODBCs (also so, wie ich es auf den anderen Servern immer gemacht hatte) klappt’s nun nicht mehr 🙁
    Kurz noch was zu den Rahmenbedingungen:
    – Webseiten über IIS
    – Daten kommen aus einer Access-DB
    – ODBC wird über den 32-Bit-Treiber wie gehabt eingerichtet

    Wenn man nun ne Webseite aufrufen will, die auf die Datenbank zugreifen muss (sind alles „*.asp“-Seiten) kommt in den Logfiles ne Fehlermeldung:
    „….
    |80004005|[Microsoft][ODBC-Driver-Manager]_Der_angegebene_DSN_weist_eine_nicht_übereinstimmende_Architektur_von_Treiber_und_Anwendung_auf. 80 …blablabla“

    Kann damit Jemand was anfangen und mir nen Tip geben?

    vielen Dank schonmal und sonnige Grüße
    Thomas

  • AffeMitWaffe
    11. April 2014 - 07:53 | Permalink

    Besten Dank! Über eine Woche Probleme dem dem scheiß gehabt.

    Das ist das erste mal das ich irgendeine Lösung im Netz kommentiere…aber hierfür haben Sie meinen Herzlichsten Dank verdient!

  • David
    15. Juni 2016 - 21:50 | Permalink

    Hallo,
    Unter Windoes 10 habe ich allerdings leider problemen mit der Einrichtung:
    Pfad war super aber wenn ich einrichten will kommt dieser Nachricht:
    „Das Betriebssystem ist momentan nicht zum ausführen dieser Anwendung konfiguriert.“
    Könnt ihr bitte weiterhelfen?
    Danke

  • Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.