jdbcodbc brücke - einbinden einer Datenbank in Java

Joy

Mitglied
[Java]public void oeffnen()
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
mTreiber="jdbc😱dbc😀river={Microsoft Access Driver (*.mdb)};DBQ=C:\ ... \Lexikon1.mdb";
objVerbindung=DriverManager.getConnection(mTreiber,"","");
objAusfuehrung=objVerbindung.createStatement();
}
catch (Exception e)
{
System.out.println("Treiber konnte nicht geladen werden");
}
}[/Java]

der Treiber ist auf meinem Rechner vorhanden, allerdings wird trotzdem immer die Catch-Meldung ausgegeben.
Bei uns in der Schule hat es so funktioniert, und jetzt weiß ich nicht, woran das liegen könnte. Hab auch nichts in der Forum-durchsuchen-Funktion gefunden.
Der Dateipfad stimmt auf jeden Fall.
Ich habe auch schon einiges ausprobiert, hat aber alles nichts gebracht.

Kann mir einer von euch helfen?

Liebe Grüße
 
Lass doch mal im catch
Java:
e.printStackTrace();
ausgeben. Dadurch sollte man eher erfahren warum es zum Fehler kommt.
 
hier die Fehlermeldung:

Java:
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Datenbank '(unbekannt)' konnte nicht geöffnet werden. Entweder wird die Datenbank nicht von Ihrer Anwendung erkannt, oder die Datei ist beschädigt.
	at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6879)
	at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7036)
	at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3028)
	at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323)
	at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)
	at java.sql.DriverManager.getConnection(DriverManager.java:512)
	at java.sql.DriverManager.getConnection(DriverManager.java:171)
	at paket_Spiel.DBZugriff.oeffnen(DBZugriff.java:19)
	at paket_Spiel.Methode.erfassen(Methode.java:62)
	at paket_Spiel.Erstellen.bsHinzufuegenActionPerformed(Erstellen.java:138)
	at paket_Spiel.Erstellen$2.actionPerformed(Erstellen.java:69)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1764)
	at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1817)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:419)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:257)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)
	at java.awt.Component.processMouseEvent(Component.java:5134)
	at java.awt.Component.processEvent(Component.java:4931)
	at java.awt.Container.processEvent(Container.java:1566)
	at java.awt.Component.dispatchEventImpl(Component.java:3639)
	at java.awt.Container.dispatchEventImpl(Container.java:1623)
	at java.awt.Component.dispatchEvent(Component.java:3480)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3450)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3165)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3095)
	at java.awt.Container.dispatchEventImpl(Container.java:1609)
	at java.awt.Window.dispatchEventImpl(Window.java:1590)
	at java.awt.Component.dispatchEvent(Component.java:3480)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:450)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:197)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)[/Java]

DBZugriff.oeffnen(DBZugriff.java:19):
[Java]objVerbindung=DriverManager.getConnection(mTreiber,"","");

Methode.erfassen(Methode.java:62):
Java:
objZugriff.oeffnen();

Erstellen.bsHinzufuegenActionPerformed(Erstellen.java:138):
Java:
objWort.erfassen();

Erstellen$2.actionPerformed(Erstellen.java:69):
Java:
bsHinzufuegen.setText("Hinzufügen");
bsHinzufuegen.setVisible(true);
bsHinzufuegen.setPreferredSize(new java.awt.Dimension(117,20));
bsHinzufuegen.setBounds(new java.awt.Rectangle(12,86,117,20));
this.getContentPane().add(bsHinzufuegen, new AnchorConstraint(758,351, 934, 33, 1, 1, 1, 1));
bsHinzufuegen.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent evt) {
	bsHinzufuegenActionPerformed(evt);
}


Kann es sein, dass es deswegen nicht funktioniert, weil ich die Access Datenbank erst unter *.accdb gespeichert habe?
 
Hast Du die Datei einfach nur in Endung accdb umbenannt oder ist das eine echte Access 2007 Datenbank.
In letzterem Fall müsste Dein TreiberString in etwa so ausssehen:
Java:
String mTreiber=
"jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\\meineDatenbank.accdb";
Vorrausgesetzt, dass der Treiber
Code:
Microsoft Access Driver (*.mdb, *.accdb)
auf Deinem System vorhanden ist.
 
vielen Dank!
Mit dem
Code:
Microsoft Access Driver (*.mdb, *.accdb)
hat es jetzt funktioniert! 🙂
 

Neue Themen


Zurück
Oben