Java + MS Access + 64 Bit = Fehler -1073740777

Neumi5694

Top Contributor
Ich hab eine Weile gebraucht, aber letztendlich hab ich den ODBC Zugriff "hingekriegt".
Unter Windows 7 64 Bit habe ich die "AccessDatabaseEngine_X64.exe" installiert, um 64 Bit Zugriff auf MS Access DBs zu erhalten.

Lasse ich mein Programm mit 32 Bit laufen, verwende ich den Connection String
Java:
String sqlConnect32 = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=c:\\Dbs\\Projects.mdb;SystemDB=c:\\DBs\\user.mdw;Uid=PowerUser;Pwd=ThisIsAPassword;

So weit so gut

Nun zu den 64 Bit. Der Name des Access Treibers hat sich geändert, ich verwende den String

Java:
String sqlConnect64 = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=c:\\Dbs\\Projects.mdb;SystemDB=c:\\DBs\\user.mdw;Uid=PowerUser;Pwd=ThisIsAPassword;"

Tue ich das aber, dann stürzt die Java Runtime beim Öffnen der Verbingung komplett ab, der Fehlercode lautet -1073740777
Java:

Hier die betreffenden Codezeilen (ohne try catch usw).
Java:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
return DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=c:\\Dbs\\Projects.mdb;SystemDB=c:\\DBs\\user.mdw;Uid=PowerUser;Pwd=ThisIsAPassword;");
Zeile 2 aus diesem Beispiel schießt das Programm mit diesem Code ab.
Hat jemand dazu eine Idee?

Ich verwende Java 1.7.09 (64 Bit), Windows 7 Ultimate SP1 (64 Bit), die AccessDatabaseEngine_X64 ist installiert.
 
Also ich hatte hier letztens damit zu kämpfen. Mein Ergebnis: Zugriff auf Access geht nur mit 32bit.

Wenn aber jemand noch ne Lösung hätte wäre das super.
 
Eine "Lösung" hab ich ... es liegt am Dateipfad.

Der Treiber akzeptiert keine Pfadlängen (inklusive Dateinamen und Laufwerk) über 42 Zeichen.

Die selbe DB hab ich in ein Verzeichnis mit kürzerem Namen geschoben, dann ging's.
Leerzeichen usw. sind hingegen kein Problem.
Was haben sich die Programmierer von Microsoft dabei gedacht?


Damit ist der angebotene ODBC Zugriff für mich leider unbrauchbar, das Ding muss flexibel sein.




Hinweis: Im ersten Post habe ich kurze Pfadnamen angegeben, diese entsprechen nicht denen, die ich tatsächlich verwendet habe. Den Post kann ich leider nicht mehr editieren, mit den angegebenen Pfaden würde es sogar funktionieren. Zu dem Zeitpunkt wusste ich nichts vom Problem mit langen Namen.
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben