Eclipse Datenbankanbindung klappt aus Eclipse heraus nicht

Fitzi21

Aktives Mitglied
Hallo,

einige können sich vielleicht noch an mich erinnern ^^
Ich bin der Anfänger mit den dummen Fragen 😀

Ich hatte es dabei ja schon öfters angedeuted, dass ich die Datenbankanbindung an meinem PC nicht so recht hin bekomme.
Nun bin ich aber mit meinem Latein am Ende.

Jetzige Situation:
  • Die Datenbankanbindung klappt an allen PCs, auf denen ich es getestet habe; Ausnahme: mein Laptop
  • Auf meinem Laptop klappt es, wenn ich das Programm aus einer exportierten JAR starte. Starte ich es direkt aus Eclipse heraus, kommt immer folgende Fehlermeldung:


java.sql.SQLException:
Code:
[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 paketClasses.DBZugriff.oeffnen(DBZugriff.java:32)
	at paketGUI.LoginFenster.loginDatenLesen(LoginFenster.java:421)
	at paketGUI.LoginFenster.access$5(LoginFenster.java:414)
	at paketGUI.LoginFenster$5.actionPerformed(LoginFenster.java:368)
	at javax.swing.JTextField.fireActionPerformed(Unknown Source)
	at javax.swing.JTextField.postActionEvent(Unknown Source)
	at javax.swing.JTextField$NotifyAction.actionPerformed(Unknown Source)
	at javax.swing.SwingUtilities.notifyAction(Unknown Source)
	at javax.swing.JComponent.processKeyBinding(Unknown Source)
	at javax.swing.JComponent.processKeyBindings(Unknown Source)
	at javax.swing.JComponent.processKeyEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)
	at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
	at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
	at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
	at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(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)

Ich habe keine Ahnung, was ich noch probieren soll.
Wie gesagt, genau das selbe Programm, aber als JAR exportiert läuft einwandfrei.

Wenn jemand noch Ideen hat, was ich ändern könnte wäre ich sehr dankbar.


Liebe Grüße
Fitzi
 
Die Pfade unterscheiden sich je nach dem ob du das Programm aus der IDE oder aus einem JAR startest. Zeig mal den Code, mit dem du dich zum DBMS verbindest und den Pfad zur DB.
 
Die Pfade unterscheiden sich je nach dem ob du das Programm aus der IDE oder aus einem JAR startest. Zeig mal den Code, mit dem du dich zum DBMS verbindest und den Pfad zur DB.

Hey,

danke für deine Antwort.
Das mit dem Pfad passt. Ich arbeite mit absoluten Pfaden, die ich bei Programmstart angebe. Egal wo ich die DB hinsetze, es hat bislang immer geklappt, nur nicht an diesem PC 🙁


Java:
package paketClasses;

import java.sql.*;

import paketGUI.LoginFenster;

public class DBZugriff
{
	Connection objVerbindung=null;
	Statement objSQLBefehl=null;
	String mTreiber;
	
	public void oeffnen()
	{
		try
		 {
			//String myDatabaseFile = "F:/DBMusikvereinverwaltung_passwort.mdb";
			//String password = "test";
			String username = "Administrator";
			String myDatabaseFile = LoginFenster.objLoginDB.getMyDatabaseFile();
			String password = LoginFenster.objLoginDB.getPasswordDB();
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			mTreiber = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq="+myDatabaseFile+";Uid="+username+";Pwd="+password+";";
			//mTreiber = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq="+myDatabaseFile+"";
			objVerbindung=DriverManager.getConnection(mTreiber);
		}		
		catch (Exception e)
		{
			e.printStackTrace();
			System.out.println("Verbindung fehlgeschlagen!");
		}
	}
}


LG Fitzi
 
Wenn der Code auf anderen Rechnern läuft, dann liegt es vllt. an einem Konfigurationsproblem deines PCs.
Guck mal hier, vllt. hilft dir das weiter.
 
Hey,

ich habe das mal durchgeschaut.

Stehengeblieben bin ich bei dem Lösungsvorschlag bei
Code:
Verwenden eines ODBC-DSN
Nicht ausreichende Berechtigungen zum Lesen des DSN-Registrierungsschlüssels

Dort wird geschrieben:
Der Schlüssel ODBC.INI enthält einen Unterschlüssel für jeden ODBC-SYSTEM-DSN, der auf dem Server registriert ist.


Bei mir ist allerdings kein Eintrag drin, obwohl ich einen System DSN angelegt habe !?

Gruß Fitzi
 
Du kannst den Eintrag ja noch nachträglich anlegen. Vorausgesetzt du weißt was da rein kommt. Hast du Zugriff auf einen anderen Rechner, auf dem dein Programm läuft? Dann könntest du ja vllt. von dort einen Schlüssel kopieren. Oder du legst gleich den kompletten DSN neu an.
 
Du kannst den Eintrag ja noch nachträglich anlegen. Vorausgesetzt du weißt was da rein kommt. Hast du Zugriff auf einen anderen Rechner, auf dem dein Programm läuft? Dann könntest du ja vllt. von dort einen Schlüssel kopieren. Oder du legst gleich den kompletten DSN neu an.

Auf einen Rechner mit Windows 7 habe ich sonst keinen Zugriff. Bei XP schau ich gleich mal, geht das auch oder müsste es das gleiche OS sein ?

Den System DSN hatte ich angelegt, aber naja, ist nichts da in der Registry. 🙁
 

Neue Themen


Zurück
Oben