2010-05-11 4 views
5

Ich verwende JDBC, um eine Verbindung zu meiner Microsoft Access-Datenbank herzustellen. Ich erhalte die folgende Ausnahme, wenn ich versuche, die Datenbank zu verbinden:Architektur stimmt nicht überein zwischen Treiber und Anwendung?

java.sql.SQLException: [Microsoft] [ODBC Driver Manager] Der angegebene DSN enthält eine Architektur Diskrepanz zwischen der Treiber- und Anwendungs ​​

Ich benutze 64bit Windows7, und ich benutze Eclipse, die auch eine 64-Bit-Version ist Meine Datenbank ist eine Microsoft Access-Datenbank und es scheint, dass der Treiber ein 32-Bit-Treiber ist, der das Problem verursacht.

Jede Hilfe zur Lösung dieses Problems wäre sehr willkommen.

Antwort

4

Schauen Sie sich den Zugang 2010 redist

Microsoft Access Database Engine 2010 Redistributable

Dieser Download wird eine Reihe von Komponenten installieren, die von Nicht-Microsoft-Office-Anwendungen verwendet werden können, Daten von und Schreiben von Daten in Office 2010-Systemdateien so lesen als Microsoft Access 2010 (mdb und accdb) Dateien und Microsoft Excel 2010 (xls, xlsx und xlsb) Dateien. Die Verbindung zu Textdateien wird ebenfalls unterstützt. ODBC- und OLEDB-Treiber werden installiert, damit Anwendungsentwickler ihre Anwendungen mit Konnektivität zu Office-Dateiformaten entwickeln können.

Dies sollte Ihren Bedürfnissen entsprechen. Viel Glück!

+0

Vielen Dank für Ihre Antwort. Ich benutze Microdoft Office 2006 spielt das eine Rolle? In den Anweisungen auf der Downloadseite heißt es: (Wenn Sie als Anwendungsentwickler ODBC verwenden, um eine Verbindung zu Microsoft Office Access-Daten herzustellen, legen Sie die Verbindungszeichenfolge auf "Driver = {Microsoft Access Driver (* .mdb, * .accdb) }; DBQ = Pfad zur mdb/accdb-Datei ") Mein Code verbindet sich momentan folgendermaßen: \t Class.forName (" sun.jdbc.odbc.JdbcOdbcDriver "); Verbindung = DriverManager.getConnection (" jdbc: odbc: users "); Ich bin nicht sicher, wo die Verbindungszeichenfolge, die in den Anweisungen erwähnt wird setzen? Danke wieder – shane87

+0

Ändern Sie die Parameter von DriverManager.getConnection in die Verbindungszeichenfolge, verwenden Sie das folgende Beispiel als eine Referenz enthält Ihre Verbindungszeichenfolge: http : //www.rgagnon.com/javadetails/java-0107.html Wenn das für Sie funktioniert, wäre eine Upvote und akzeptierte Antwort nett;) und wenn nicht, geben Sie mir einen Ruf. – Yoda

+0

Und ich bin ziemlich sicher, dass die Treiber rückwärtskompatibel sein werden, also sollte kein Problem sein. – Yoda

0

Ich habe noch nicht genug Reputation, um Yoda zu wählen, aber ich muss sagen, dass seine Lösung die eleganteste ist, die ich je gesehen habe. Sie hätten auch eine 32-Bit-JVM verwenden können, aber das ist irgendwie albern. (Wenn Sie dies auf IIS treffen, können Sie den Anwendungspool 32-Bit machen, was eine Art der gleichen Sache ist.)