Access Datenbank mit Java auf win7 64bit

KYL3R

Mitglied
MySQL ist nicht unbedingt treffend, weis ich.

Folgendes: Ich arbeite an einem 64bit Rechner (Windows 7) und komme nicht um den Fehler herum, den eclipse ausgibt :
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Der Datenquellenname wurde nicht gefunden, und es wurde kein Standardtreiber angegeben
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at gui.Hauptfenster.aktualisiereTabelle(Hauptfenster.java:28)
at gui.Hauptfenster.<init>(Hauptfenster.java:17)
at gui.Hauptfenster$1.run(Hauptfenster.java:79)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

Der Anfang is eher wichtig : Der JDBC Treiber wird nicht gefunden, laut Foren weil ich ne DSN anlegen muss oder so. Ich habe schon viel Probiert.
Fakt ist : Ich habs auf meinem 2.rechner ausprobiert und da der auf 32bit läuft geht es ohne Probleme. Daher jetzt die Frage an euch : Was muss ich alles uminstallieren, damit es auf meinem 64bit rechner läuft?
Ich hab gehört office neu installieren, aber da konnte ich nicht auswählen wieviel bit ich will, beim installieren einer 64bit Database-engine "AccessDatabaseEngine_x64.exe" sagt mir ein dialogfeld, dass ich das nicht installieren kann wenn ich 32bit office programme habe, ich sollte es deinstallieren. Hab ich gemacht, dann 64bit engine installiert, dann win office installiert, aber jetzt hab ich wieder die 32bit engine -.-
Reicht es denn wenn ich iwoher ne 64bit win office version bekomme `?
mit :
Java:
 String a = System.getProperty("sun.arch.data.model");
		 System.out.println(a);
		 [JAVA/][/QUOTE]
Habe ich jetzt nochmal überprüft, dass meine JVM 64bit ist, aber ist es auch mein JDK ? Oder brauch ich noch 64bit eclipse ?`(hab ich glaube sogar schon, falls es das gibt... hab schon soviel gemacht...)

Also meine Frage nochmal klar formuliert : Was muss ich tun, damit ich auf die Datenbank zugreifen kann, was mir momentan nur auf 32bit möglich ist?

Danke euch :)
 
Zuletzt bearbeitet von einem Moderator:

Michael...

Top Contributor
Der Anfang is eher wichtig : Der JDBC Treiber wird nicht gefunden
Auch wenn sich die Fehlermeldung so anhört. Hier wird die Datenbank nicht gefunden.
Wie wird die Verbindung zur Datenbank aufgebaut? Code
Ich hab gehört office neu installieren, aber da konnte ich nicht auswählen wieviel bit ich will, beim installieren einer 64bit Database-engine "AccessDatabaseEngine_x64.exe" sagt mir ein dialogfeld, dass ich das nicht installieren kann wenn ich 32bit office programme habe, ich sollte es deinstallieren. Hab ich gemacht, dann 64bit engine installiert, dann win office installiert, aber jetzt hab ich wieder die 32bit engine -.-
Reicht es denn wenn ich iwoher ne 64bit win office version bekomme `?
mit :
Auf dem Rechner muss kein Office oder Access installiert sein, wichtig ist nur das die Treiber vorhanden sind (Sind standardmäßig auf Windows Betriebssystemen eingerichtet)

Mal geraten:
Es wird versucht per
Code:
Connection con = DriverManager.getConnection("jdbc:odbc:MeineDatenbank");
eine Verbindung zur DB aufzubauen. Das setzt voraus, dass die Datenbank als Benuter-DSN oder System-DSN in Windows eingetragen ist.
 

KYL3R

Mitglied
Erstmal danke für die Antwort.
Also, ich rufe die Datenbank so auf :
PHP:
Connection con=DriverManager.getConnection( "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:/Dokumente und Einstellungen/Kai/workspace/kontakte.mdb","","" );

Der Code ist ein Beispiel aus dem Netz.

Auf dem 64bit rechner bekomme ich immer die meldung, auf dem 32bit rechner bekomme ich nur eine, wenn ich im Pfad fehler mache, dann jedoch eine andere als auf dem 64bit rechner.

Wenn der Pfad nicht stimmt, bemerkt das der 64bit rechner nicht, da der code vorher schon fehler wirft.
Der 32bit rechner spuckt bei falschem Pfad das hier aus :
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] '(unbekannt)' ist kein zulässiger Pfad. Stellen Sie sicher, dass der Pfad richtig eingegeben wurde und dass Sie mit dem Server, auf dem sich die Datei befindet, verbunden sind.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
[...]

Der unterscheidet sich von der anderen meldung. einmal heist es, der treiber wird nicht gefunden, bei falschem pfad wird das explizit geschrieben :" ist kein zulässiger Pfad. "

Wenn der Pfad stimmt, geht es ohne jegliche Fehler (32bit)

Was ich vllt noch erwähnen sollte, es gibt bei windows 7 so ne datei die heist ODBCAD32. Da stand im Internet zu meinem Problem, dass man als 64bit win7 Nutzer in system32 die 32bit version davon nutzen soll statt der 64er, in system32 hab ich keine 64bit version gefunden, daher habe ich das problem nicht, aber es ist nicht unwarscheinlich, dass sie in einem anderen ordner liegt, eben nicht system "32" .

Die habe ich jedoch manuell ausgeführt und ne system dsn eingerichtet. Ne user dsn und was es da nicht alles gab. ich habe die jenige Datenbank eingetragen etc. Ich glaube alles richtig gemacht zu haben, aber es ist immernoch der gleiche fehler.

Übrigens ist der 32bit-rechner win XP pro und da habe ich absolut NICHTS eingestellt, keine dsn oder so, es lief aus eclipse heraus ohne weiteres :/

Fällt dir noch etwas ein, nachdem was ich nun geschrieben habe ? Sonst müssten wir das mit den DSN nochmal genauer betrachten, vllt habe ich da noch iwas falsch gemacht.
 

Rin

Mitglied
also in windows 7 64 bit wird odbc nicht auf 64 bit unterstützt also über system verwalten datenquellen etc.. das funktioniert nicht hatte ich das gleiche problem mal da musst du den treiber mehr oder weniger mit dem 32 bit programm davon einrichten das sehrwohl im system32 ordner ist und odbcad32.exe heißt da kannst du dann den odbc treiber einrichten damit du dich auf die datenbank connecten kannst da brauchst du auch nicht den kompletten pfad angeben sondern kannst das mit dem benannten treiber z.b.: ACCdb oder sowas einfach zugreifen mit

Java:
Connection con=DriverManager.getConnection( "jdbc:odbc:TREIBERNAME");

den treiber name den du angegeben hast hoffe das hilft dir
 

Michael...

Top Contributor
Habe gerade mal hier auf einer Win 7 64bit Maschine getestet und konnte keine Probleme beim Zugriff wie folgt feststellen:
Java:
Connection con=DriverManager.getConnection( "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:/Dokumente und Einstellungen/Kai/workspace/kontakte.mdb","","" );
Zum Testen würde ich allerdings ein anderes Verzeichnis nehmen z.B:
Code:
c:/temp
 

KYL3R

Mitglied
also in windows 7 64 bit wird odbc nicht auf 64 bit unterstützt also über system verwalten datenquellen etc.. das funktioniert nicht hatte ich das gleiche problem mal da musst du den treiber mehr oder weniger mit dem 32 bit programm davon einrichten das sehrwohl im system32 ordner ist und odbcad32.exe heißt da kannst du dann den odbc treiber einrichten damit du dich auf die datenbank connecten kannst da brauchst du auch nicht den kompletten pfad angeben sondern kannst das mit dem benannten treiber z.b.: ACCdb oder sowas einfach zugreifen mit

Java:
Connection con=DriverManager.getConnection( "jdbc:odbc:TREIBERNAME");

den treiber name den du angegeben hast hoffe das hilft dir



In der Tat, obwohl es auf meinem 32bit rechner so :
Java:
Connection con=DriverManager.getConnection( "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:/Dokumente und Einstellungen/Kai/workspace/kontakte.mdb","","" );
ging, musste ich es auf meinem 64bit rechner so machen:
Java:
Connection con=DriverManager.getConnection( "jdbc:odbc:TREIBERNAME")
Die Methode, ohne die Registrierung des ODBC Treibers (hier) habe ich nicht getestet, da es jetzt auch so geht, und laut L-ectron-X nur auf windows laufen würde, bin ich froh, dass es jetzt auch so geht.

Wenn es nicht geht, und man nicht weis warum, ist sowas :"TREIBERNAME" immer etwas verwirrend, nachdem ich mehrere DSN eingerichtet hatte und alle nur meinten "richte ne dsn ein" war ich irgendwann durcheinander und wusste nicht wo der fehler liegt.

Daher, (da ich es nun verstanden habe und es bei mir geht) jetzt nochmal eine Zusammenfassende Bilder-Erklärung die auch für 64bit nutzer funktionieren sollte :

unbenannt12h.jpg


als link :

Vielen Dank an alle, die Tipps haben sehr geholfen. Ich hatte immer so viel krams mitgeschrieben :
"jdbc:eek:dbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:/Dokumente und Einstellungen/Kai/workspace/kontakte.mdb","","" )
dabei geht es tatsächlich einfach so :
Connection con=DriverManager.getConnection( "jdbc:eek:dbc:MS Access Database","","" );

In den Bildern wirds nochmal erklärt. All denen, die diesen Thread irgendwann mal lesen wird es hoffentlich helfen.
 

Agassiz

Mitglied
Ich bekomme den Fehler:

Code:
[Microsoft][ODBC Driver Manager] Der angegebene DSN weist eine nicht übereinstimmende Architektur von Treiber und Anwendung auf.


Nutze auch Win7 64bit und habe die Datenbank bzw DSN mit der Datei in dem SysWOW64 Ordner genutzt.

Die Datenbank wird auch gefunden, sonst würde die Fehlermeldung eine andere sein.

Java:
public static Connection dbConnect(String databasePath){
		Connection conn = null;
		//String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
		try {
        System.out.println("Pfad: "+databasePath);         
        	Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    	
              conn = DriverManager.getConnection( "jdbc:odbc:BUERO","","" );
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
       System.out.println(e.toString());
                     
                    e.printStackTrace();
			//System.out.println("Kann keine Verbindung zur Datenbank Herstellen: "+databasePath );
		}
		System.out.println("Connected to " + conn);
		return conn;
		
}


Wie kann ich den oberen Fehler lösen?

Danke ;)
 

Michael...

Top Contributor
Ich bekomme den Fehler:

Code:
[Microsoft][ODBC Driver Manager] Der angegebene DSN weist eine nicht übereinstimmende Architektur von Treiber und Anwendung auf.
Das hört sich danach an, dass die Windows Treiber Konfiguration nicht passt. Lässt sich den mittels "Test Connection" - keine Ahnung, ob das unter Win7 auch so heißt - eine Verbindung aufbauen?
 

Agassiz

Mitglied
Mit OpenOffice Base kann ich ohne weiteres auf die DSN zugreifen usw. ich denke da dürfte alles passen... nur wo sind jetz der/die fehler :/
 

Michael...

Top Contributor
Ich sehe gerade Du nutzt den Sun ODBC Treiber. Meines Wissens war der nie für eine Produktivnutzung konzipiert und es kann durchaus sein, dass er mit der Access DB (dass sich sowas DB nennen darf ;-)) nicht funktioniert.
Hab mich allerdings schon seit Ewigkeiten nicht mehr damit beschäftigt.
 

L-ectron-X

Gesperrter Benutzer

Michael...

Top Contributor
Ist wohl eine 32bit/64bit Thematik. Dazu sollte es hier Leute geben die diesbzgl. mehr Ahnung haben als ich. Nutzt Du ein 32bit oder 64bit JDK und läuft das Programm dann als 32bit oder 64bit Anwendung. Ich glaube das muss alles irgendwie zusammen passen - habe aber wie gesagt nicht wirklich Ahnung.
 

Agassiz

Mitglied
es scheint am rechner zu liegen, da auf einem anderen 64 bit system das ganze läuft -.-' tut mir leid für die aufregung und danke für die hilfen ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Access Datenbank mit JAVA erstellen - boolean Werte Datenbankprogrammierung 4
B MAC Access Datenbank in Java verwenden - Treiberproblem Datenbankprogrammierung 2
NoXiD Access Datenbank in java einbinden ohne ODBC treiber zu erstellen Datenbankprogrammierung 5
O Access Datenbank mit Java bedienen Datenbankprogrammierung 2
D Access-Datenbank unter Java verwenden Datenbankprogrammierung 7
P Verbindung zu einer Access Datenbank per Eclipse oder Intellij Datenbankprogrammierung 0
MaxG. Access Datenbank Datenbankprogrammierung 48
I Access Datenbank in Table einlesen lassen Datenbankprogrammierung 2
Z Finde den Fehler: Daten aus einer Access-Datenbank lesen Datenbankprogrammierung 12
S HSQLDB Zugriff auf Access Datenbank Datenbankprogrammierung 0
V Datenbank Access einbinden Datenbankprogrammierung 11
A Verbindung mit Access 2007 Datenbank herstellen Datenbankprogrammierung 1
J Verbindung zu Access Datenbank Datenbankprogrammierung 15
E Access Datenbank, Linux Umgebung Datenbankprogrammierung 4
E Access Datenbank mit Insert befüllen Datenbankprogrammierung 5
K MySQL JDBC - Access Datenbank - unbekannter TabellenName Datenbankprogrammierung 4
F Zugriff auf MS Access-Datenbank mit jackcess Datenbankprogrammierung 10
P Access Datenbank durchsuchen Datenbankprogrammierung 8
T Problem bei Zugriff auf Access Datenbank Datenbankprogrammierung 7
Q Access Datenbank in eine Internetseite einbinden Datenbankprogrammierung 2
M Zugriff auf eine Access-Datenbank innerhalb eines jar-Files Datenbankprogrammierung 7
J Zugriff auf Access-Datenbank Datenbankprogrammierung 3
D Access Datenbank in .jar-Datei Datenbankprogrammierung 51
M Access Datenbank ! Datenbankprogrammierung 5
B Platzierung einer Access Datenbank Datenbankprogrammierung 4
D An Access Datenbank andocken ohne sie beim System anzumelden Datenbankprogrammierung 3
D String[][] Array in Access Datenbank speichern Datenbankprogrammierung 5
B JDBC Verbindung zu Access Datenbank Datenbankprogrammierung 6
T Access-Datenbank unter Mac OS X Datenbankprogrammierung 14
J Verbindung zur Datenbank MS Access Datenbankprogrammierung 4
A Problme mit Access als Datenbank Datenbankprogrammierung 3
K Zugriff auf Access-Datenbank Datenbankprogrammierung 4
G In Access-Datenbank schreiben Datenbankprogrammierung 10
Tom#234 Jakarta Web Service SQL Access Error Datenbankprogrammierung 7
H Datenbankverbindung zu MS Access Datenbankprogrammierung 4
G Connect zu ACCESS-DB mit Ucanaccess Datenbankprogrammierung 11
V keine Verbindung möglich (Access-DB) Datenbankprogrammierung 3
Thallius MySQL JDBC auf Linux Server zu mySQL DB auf anderem Linux Server wirft Access denied Datenbankprogrammierung 5
Z [JDBC][MYSQL] Access denied Datenbankprogrammierung 7
J Unterschied @Id und @Access? Datenbankprogrammierung 5
D UCanAccess / MS Access - Tabelle / Spalte vorhanden Datenbankprogrammierung 3
J Java 8 und Microsoft Access Database-Dateien(mdb) Datenbankprogrammierung 1
W Access DB Metainfo hinzufügen Datenbankprogrammierung 8
Neumi5694 MS Access Sicherheit entfernen Datenbankprogrammierung 0
F Brauche dringend Hilfe Java-Access Connection Datenbankprogrammierung 3
L mdb (access) ansteuern: Welcher weg ist der Beste Datenbankprogrammierung 3
D Java MS Access Verbindung Datenbankprogrammierung 10
Neumi5694 MS Access Tabellenbesitzer ändern Datenbankprogrammierung 0
Neumi5694 Java + MS Access + 64 Bit = Fehler -1073740777 Datenbankprogrammierung 2
R MS-Access mit JAva auslesen Datenbankprogrammierung 7
Gossi MySQL Access denied Datenbankprogrammierung 11
M Datenbankverbindung Access Datenbankprogrammierung 3
F Insert into Access Datenbankprogrammierung 3
C Access Datenbankprogrammierung 2
T Access 32bit on Win7 64Bit ODBC Problem Datenbankprogrammierung 1
H Microsoft Access Treiber wird nicht gefunden Datenbankprogrammierung 9
T Datenbankverbindung access funtioniert nicht Datenbankprogrammierung 21
M Access Update Statement Fehler update -> unmöglich? Datenbankprogrammierung 3
M Access Abfrage mit Parameter & Access/Java liefern unterschiedliche Ergebnisse Datenbankprogrammierung 2
M Access Datensatz beinhaltet ESC-Zeichen Datenbankprogrammierung 3
S Access 2007 zugreifen- ODBC Driver Manger Datenbankprogrammierung 3
R MS Access mit Java Problem mit Update Statment Datenbankprogrammierung 13
M Problem mit Hibernate und Access Datenbankprogrammierung 9
S Datenbankapplikation von Access -> Java Datenbankprogrammierung 18
J mit java in access DB über odbc/jdbc Datenbankprogrammierung 2
C MS Access und Jarkarta POI Datenbankprogrammierung 4
E [ACCESS ODBC] INSERT INTO Fehler Datenbankprogrammierung 4
H java.sql.SQLException: Access denied for user 'root'@'localhost' (using password : YES) Datenbankprogrammierung 1
N Wie kann ich Zugriff auf eine MS Access DB (mit JDBC) über Netzwerk erreichen? Datenbankprogrammierung 7
M Spaltennamen einer MS Access Tabelle ermitteln Datenbankprogrammierung 3
F Zugriff auf MS Access DB Datenbankprogrammierung 3
T Problem beim Update in die Access DB Datenbankprogrammierung 9
M Tabelle in Access Datei mit JDBC generieren Datenbankprogrammierung 3
C MySQL langsamer als MS ACCESS Datenbankprogrammierung 5
S Connection String MS Access mit Systemdatenbank / Arbeitsgruppeninformationsdatei Datenbankprogrammierung 4
X JDBC und MS-Access Sicherheitslücken? Datenbankprogrammierung 4
N mehrere Abfragen nacheinander wie mit MS Access mit JAVA Datenbankprogrammierung 3
G "Adapter" Access -> MySQL? Datenbankprogrammierung 6
J Java DB Zugriff auf Access (Migration auf andere DB) Datenbankprogrammierung 8
H Fehler mit ". Microsoft Access Driver" Datenbankprogrammierung 12
K Java JDBC Access Datenstruktur Datenbankprogrammierung 2
V Überprüfen ob Tabelle existiert in Access per ODBC Datenbankprogrammierung 2
S Access vom Programm aus starten Datenbankprogrammierung 8
V Tabelle kopieren (Superbase -> Access) Datenbankprogrammierung 1
G Java und Access? Datenbankprogrammierung 3
D Problem mit Access abfrage Datenbankprogrammierung 10
J Insert auf Access DB funktioniert nicht Datenbankprogrammierung 5
E Wie auf MS-Access DB zugreifen? Datenbankprogrammierung 8
M Hilfe -Access mag sein Replace nciht merh Datenbankprogrammierung 2
alexpetri Problem mit jdbc MS Access / nach 670 inserts ist schluss. Datenbankprogrammierung 4
U MS Access reservierte Wörter Datenbankprogrammierung 2
S Fehler bei DB Verbindung Access Datenbankprogrammierung 6
V MS Access DB - Schreibschutz deaktivieren Datenbankprogrammierung 3
S PreparedStatements, Abfrageoptimierung unter MS Access Datenbankprogrammierung 5
S Java Access Arbeitsgruppendatei Datenbankprogrammierung 2
S Zugriff auf eine große Datenmenge von MS Access per JDBC Datenbankprogrammierung 11
S Access und Java, aber wie? Datenbankprogrammierung 4
N Hilfe ! Mein Applet bekommt ein Access-Denied von MySQL Datenbankprogrammierung 7
G Doppeleinträge in Access auf anderem Weg verhindern. Datenbankprogrammierung 4
T Zugriff auf MS-Access-DB ist grottenlangsam. Normal? Datenbankprogrammierung 9

Ähnliche Java Themen

Neue Themen


Oben