Ich bin verwirrt beim Erstellen einer ODBC-Verbindung. Offenbar habe ich zwei separate odbcad32.exe-Dateien?

Ich bin verwirrt beim Erstellen einer ODBC-Verbindung. Offenbar habe ich zwei separate odbcad32.exe-Dateien?

Okay, ich arbeite zum ersten Mal damit, also verzeihen Sie mir, wenn ich etwas verwirrend oder vage aussehe.

Ich habe einen Server mit Windows Server 2008 Standard ohne Hyper-v (6.0, Build 6002). Ich betreibe eine kleine Website auf diesem Server und verwende eine Microsoft Access-Datenbank, um einige über die Website eingehende Informationen zu speichern. Ich bin sicher, dass das PHP, das ich zum Öffnen der ODBC-Verbindung geschrieben habe, korrekt ist, da es bei mir funktioniert hat, als ich diese Website in einer Testumgebung auf einem Laptop erstellt habe.

Mein aktuelles Problem ist, dass ich anscheinend zwei verschiedene odbcad32.exe habe und eine davon keinen Treiber für eine .accdb-Datei zu haben scheint, sondern nur eine .mdb-Datei. Die andere hat einen Treiber für beide.

Der erste, von dem ich spreche, hat einen Treiber mit dem Titel „Driver do Microsoft Access (.mdb)“, der zweite hat einen Treiber mit dem Titel „Microsoft Access Driver (.mdb, .accdb)“. Ich greife auf die erste odbcad32.exe zu, indem ich zu C:\Windows\SysWOW64\odbcad32.exe gehe, und dann gehe ich zu der Datei, die den Treiber zu haben scheint, den ich brauche, zu Systemsteuerung->Verwaltung->Datenquellen (ODBC) und erstelle einfach eine neue Verbindung auf der Registerkarte System-DNS.

Wenn ich Änderungen an der Datei vornehme, auf die ich über die Systemsteuerung zugreife, sehe ich keine Änderungen. Wenn ich jedoch die Datei odbcad32.exe in SysWOW64 verwende, werden mir einige Änderungen in den Fehlern angezeigt, die mir zurückgegeben werden. Der Hauptunterschied, den ich bemerkt habe, ist, dass beim Einrichten einer ODBC-Verbindung mit der Systemsteuerungsmethode angezeigt wurde, dass die ODBC-Verbindung einfach nicht gefunden werden konnte. Als ich jedoch eine .mdb-Verbindung in der SysWOW64-Verbindung herstellte (und sie auf eine .accdb-Datei verwies), wurde angezeigt

Cannot open database '(unknown)'. It may not be a database that your application recognizes, or the file may be corrupt.

Das lässt es so aussehen, als ob diese odbcad32.exe-Version in SySWOW64 als die „richtige“ erkannt wird. Gibt es eine Möglichkeit, das zu beheben?

Ich habe versucht, so gründlich wie möglich zu sein, aber wenn ich etwas verwirrend finde oder ausgelassen habe, lassen Sie es mich wissen.

Antwort1

Die ausführbare Datei in system32 ist die 64-Bit-Version, während die Kopie in syswow64 die 64-Bit-Version ist. Jede funktioniert mit unterschiedlichen Treibersätzen, basierend auf der Architektur der ausführbaren Datei, die Sie ausführen.

Die Version, die Sie ausführen möchten, hängt von der Architektur der ausführbaren Dateien ab, die die Treiber laden müssen.

In den meisten Fällen wird PHP als 32-Bit-Prozess für CGIs ausgeführt. Sie müssen jedoch Ihre Umgebung noch einmal überprüfen und sicherstellen, dass die entsprechenden Treiber installiert sind.

verwandte Informationen