Problem bei Zugriff auf Access Datenbank

Thohei

Mitglied
Hallo,

Ich veruche eine Connection auf eine Access DB zu machen.

Connection:
Java:
public MdlDB() {
	        String[] props = Utils.getDBProps();
	        try {
	        	driver = "org.postgresql.Driver";
                url_beg = "jdbc:postgresql://";
                dbPort = "5432";
                dbHost = props[0];
                dbName = props[1];
                dbUser = props[2];
                dbPwd = props[3];
                driverOdbc = "sun.jdbc.odbc.JdbcOdbcDriver";
                url_odbc = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
                dbNameOdbc = "Journal.mdb";
                dbFolder = props[4];
                
                if(checkPgHost() == true) {
                	this.pgConnect(driver, url_beg, dbHost, dbUser, dbPwd, dbName, dbPort);
                } else {
                	this.odbcConnect(driverOdbc,url_odbc,dbFolder,dbNameOdbc);
                }
	        } catch (Exception ex) {
	        	
	        }
	 }

public void odbcConnect(String driver, String url_beg, String folder, String dbName) {
		 try {
			 Class.forName(driver).newInstance();
			 url = "" + url_beg + "" + folder + "\\" + dbName + ";";
			 conn = DriverManager.getConnection(url,"","");
		 } catch (Exception e) {
			 e.printStackTrace();
		 }
	 }

Dann möchte ich eine Abfrage ausführen.

Diese über diese Funkion ausgeführt wird:
Java:
public ResultSet executeOdbcQuery(String query) {
    	try {
    		Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); 
    		return stmt.executeQuery(query); //Das ist Zeile 100;
    	} catch (SQLException se) {
    		System.out.println(se.getSQLState());
    		se.printStackTrace();
            JOptionPane.showMessageDialog(null, se, "Fehler in der Abfrage!", JOptionPane.ERROR_MESSAGE);
    	}
    	return null;
    }

Und dann kommt dieser Fehler.

Fehler:
Java:
java.sql.SQLException: General error
	at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbcStatement.execute(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbcResultSet.calculateRowCount(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbcResultSet.initialize(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbcStatement.getResultSet(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(Unknown Source)
        at waitzrichter.MdlDB.executeOdbcQuery(MdlDB.java:100)
	at waitzrichter.MyTableView.getTableData(ViewUebersicht.java:72)
	at waitzrichter.MyTableView.<init>(ViewUebersicht.java:18)
	at waitzrichter.ViewUebersicht.<init>(ViewUebersicht.java:244)
	at waitzrichter.ViewWaitzRichter.addComponentsToPane(ViewWaitzRichter.java:15)
	at waitzrichter.ViewWaitzRichter.createAndShowGUI(ViewWaitzRichter.java:110)
	at waitzrichter.ViewWaitzRichter.access$0(ViewWaitzRichter.java:102)
	at waitzrichter.ViewWaitzRichter$2.run(ViewWaitzRichter.java:125)
	at java.awt.event.InvocationEvent.dispatch(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 nun schon einiges ausprobiert, finde aber keine Lösung.
 

Thohei

Mitglied
Das ist auch so gewollt.

Die Access Verbindung wird nur benutzt wenn der Postgre nicht online ist.

Die Tabellen die auf dem Postgre liegen, werden in Access Datenbanken exportiert.

Da die Postgre DB im lokalen Firmennetz ist und unsere Mitarbeiter aber teilweise Projekte vor Ort ändern müssen. Deshalb werden die Projekte in Access DBs exportiert.

Ich habe ja noch eine Funktion die prüft ob der Postgre online ist oder nicht:
Java:
public boolean checkPgHost() {
    	Socket pgSocket = null;
    	BufferedReader in= null;
    	
    	try {
    		pgSocket = new Socket(this.dbHost,Integer.parseInt(this.dbPort));
    		in = new BufferedReader(new InputStreamReader(pgSocket.getInputStream()));
    		in.close();
    		return true;
    	} catch (UnknownHostException e ) {
    		//e.printStackTrace();
    		return false;
    	} catch (IOException e ) {
    		//System.err.println ( "Couldn't get I/O for the connection to: taranis." ) ;
    		return false;
    	}
 

Thohei

Mitglied
Fehler gefunden!

Die Abfrage ist anscheinend zu komplex.

Das ist die eigentliche Abfrage:
[Java]
sql = "SELECT tj.jj_nr, tj.jj_bezchg, tj.jj_vfibu, tj.jj_statistik, tj.jj_verw, tj.jj_abschl, tj.jj_inso_vorl, " +
"tj.jj_aktenzeichen, tj.jj_bildarchiv, tj.jj_saved, tj.jj_update, tj.jj_auftrag, " +
"(SELECT tag.ja_a1 FROM tj_ag tag WHERE tag.ja_nr = tj.jj_ag) AS kdnr, " +
"(SELECT tag.ja_kurzbez FROM tj_ag tag WHERE tag.ja_nr = tj.jj_ag) AS kunde, " +
"(SELECT tp.lp_name FROM tl_personal tp WHERE tp.lp_id = tj.jj_sv) AS supervisor, " +
"(SELECT tp.lp_name FROM tl_personal tp WHERE tp.lp_id = tj.jj_pl) AS projectmanager FROM tj_journal tj ORDER BY tj.jj_nr ASC;";
[/code]

Mit einer "SELECT * FROM tj_journal" geht es.

Also ist der Connect richtig und die Query Funktion auch.

Jetzt habe ich wenigsten schonmal einen Ansatz.
 
M

Marcinek

Gast
Ich würde dir zur optimierung deiner SQL zu crossjoins oder generell joins raten.

Diese subquerys da sind unmöglich.

Gruß,


Martin
 

Thohei

Mitglied
So habe das ganze jetzt mit JOINs gemacht, obwohl es bei einer Sache nicht funktioniert.

Java:
sql = "SELECT tj.jj_nr, tj.jj_bezchg, tj.jj_vfibu, tj.jj_statistik, tj.jj_verw, tj.jj_abschl, tj.jj_inso_vorl, " +
            "tj.jj_aktenzeichen, tj.jj_bildarchiv, tj.jj_saved, tj.jj_update, tj.jj_auftrag, tag.ja_a1 AS kdnr, tag.ja_kurzbez AS kunde, " +
            "tp.lp_name AS supervisor, tp.lp_name as projectmanager " +  // DAMIT KOMMT ER NICHT KLAR, da wird mir bei Supervisor und projectmanager immer derselbe angezeigt, obwohl es unterschiedliche sind.
            "LEFT JOIN tj_ag tag ON tag.ja_id = tj.jj_ag " +
            "LEFT JOIN tl_personal tp ON tp.lp_id = tj.jj_sv AND tp.lp_id = tj.jj_pl " +
            "FROM tj_journal tj ORDER BY tj.jj_nr ASC;";
 

Thohei

Mitglied
So mit diese Abfrage funktioniert es sowaohl unter postgresql und access.

Java:
sql = "SELECT tj.jj_nr, tj.jj_bezchg, tj.jj_vfibu, tj.jj_statistik, tj.jj_verw, tj.jj_abschl, tj.jj_inso_vorl, " +
	        "tj.jj_aktenzeichen, tj.jj_bildarchiv, tj.jj_saved, tj.jj_update, tj.jj_auftrag, tag.ja_a1 AS kdnr, tag.ja_kurzbez AS kunde, " +
	        "tp.lp_name AS supervisor, tpl.lp_name AS projectmanager " +
	        "FROM ((tj_journal tj " +
	        "LEFT JOIN tj_ag tag ON tag.ja_nr = tj.jj_ag) " +
	        "LEFT JOIN tl_personal tp ON tp.lp_id = tj.jj_sv) " +
	        "LEFT JOIN tl_personal tpl ON tpl.lp_id = tj.jj_pl " +
	        "ORDER BY tj.jj_nr ASC;";
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Problem beim Zugriff auf eine Oracle-DB Datenbankprogrammierung 23
G Problem beim Zugriff SQL 2000 Datenbankprogrammierung 2
J PC-Start Problem JDBC Connection Datenbankprogrammierung 10
C Problem mit Apache Poi Datenbankprogrammierung 6
N HSQLDB Problem mit Eclipselink in runnable Jar Datenbankprogrammierung 10
P GroupLayout-Problem Datenbankprogrammierung 12
F XAMPP max connections problem Datenbankprogrammierung 6
C MySQL Problem in phpMyAdmin Oberfläche Datenbankprogrammierung 5
C Problem with INSERT.............ON DUPLICATE KEY Datenbankprogrammierung 3
C Problem with insertion in database. Datenbankprogrammierung 7
F Problem mit Hibernate c3p0 Datenbankprogrammierung 2
W Problem mit Insert in zwei Tabellen Datenbankprogrammierung 8
G MySQL Problem mit MySQL verbindung Datenbankprogrammierung 8
A kleines Problem Datenbankprogrammierung 6
T Problem mit Datenbankverbindung Datenbankprogrammierung 22
V Derby/JavaDB updateRow Problem Datenbankprogrammierung 0
G MySQL Java Problem: Nullpointer Exception obwohl Daten vorhanden sind? Datenbankprogrammierung 2
Nuiton EmbeddedDriver Problem Datenbankprogrammierung 6
A MongoDB Passwort Problem Datenbankprogrammierung 0
O HSQLDB Hibernate Criteria Problem Datenbankprogrammierung 3
F MySQL JDBC Problem Datenbankprogrammierung 5
Anfänger2011 Datenbankstruktur/aufbau (theoretisches Problem) Datenbankprogrammierung 5
M Derby/JavaDB Drop Database problem Datenbankprogrammierung 3
M Derby/JavaDB NOT LIKE problem Datenbankprogrammierung 19
N HSQLDB Problem mit EntityManager Datenbankprogrammierung 7
B MySQL JPAContainer Problem Datenbankprogrammierung 4
K Eclipse Apache Derby Treiber Problem Datenbankprogrammierung 4
C Problem oder Denkfehler mit H2-Database Datenbankprogrammierung 3
E Wie kann man das Problem mit der BLOB-Spalte lösen? Datenbankprogrammierung 1
M Problem mit jcouchdb und CouchDB - UTF8 kein gültiger Zeichentyp Datenbankprogrammierung 4
T MySQL Problem mit Datenbankanbindung Datenbankprogrammierung 4
M INSERT-Problem = integrity constraint violation: foreign key no parent Datenbankprogrammierung 5
P SQL Query Problem Datenbankprogrammierung 14
A MySQL Problem bei Tabelle ausgeben Datenbankprogrammierung 3
Q MySQL JDBC-Treiber Problem Datenbankprogrammierung 2
B SQLite Problem bei Planung der Datenbank [Jeopardy] Datenbankprogrammierung 3
A Problem mit dem Import und Export von Bildern Datenbankprogrammierung 4
P Oracle Problem mit Umlauten Datenbankprogrammierung 9
A Problem mit Create-Statement Datenbankprogrammierung 9
D Problem mit COLUMN_IDENTIFIERS Datenbankprogrammierung 8
Bluedaishi MySQL Abfrage Problem :-) Datenbankprogrammierung 21
M Problem mit mehreren Datasourcen Datenbankprogrammierung 3
R Resultset.last() Problem Datenbankprogrammierung 12
M Problem GroupBy Datenbankprogrammierung 3
S CURRENT_DATE problem Datenbankprogrammierung 2
M Problem mt JPA Id-Generators Datenbankprogrammierung 18
Gossi Oracle Problem mit group by... Datenbankprogrammierung 22
M MySQL SQL Abfrage Problem Datenbankprogrammierung 6
R MS-SQL Express Login-Problem Datenbankprogrammierung 8
P Lazy-Fetchig und Session-Problem mit Hibernate Datenbankprogrammierung 4
N HSQLDB Problem beim Treiberladen im Jar Datenbankprogrammierung 6
M Problem beim Erstellen einer Query Datenbankprogrammierung 7
C Hibernate ManyToMany zusammengesetzter Primärschlüssel, problem. Datenbankprogrammierung 3
M Problem mit HQL Syntax Datenbankprogrammierung 5
K Db4o Delete Problem Datenbankprogrammierung 11
Mike90 Deadlock/Lock Problem Datenbankprogrammierung 4
T Access 32bit on Win7 64Bit ODBC Problem Datenbankprogrammierung 1
C unverständliches DB Problem (Es ist kein temporärer Systemtabellenbereich mit einer ausreichenden..) Datenbankprogrammierung 5
S ODBC Treiber Problem/oder unvermögen Datenbankprogrammierung 18
J Problem bei Boolean in PreparedStatement Datenbankprogrammierung 5
C MySQL Problem mit UPDATE Abfrage Datenbankprogrammierung 13
C Problem mit SQL-Abfrage Datenbankprogrammierung 5
K Problem mit Datenbankverbindung via Eclipse Datenbankprogrammierung 2
A Problem mit Eintragen von Daten in eine Datenbank mittels DAO Datenbankprogrammierung 4
S Oracle Problem mit PreparedStatement.setString(1,"str") Datenbankprogrammierung 10
B MySQL Problem mit Datenbankanbindung an MySQL Datenbankprogrammierung 2
N Problem bei Erstellung eines Index Datenbankprogrammierung 12
C Hibernate Property-Problem Datenbankprogrammierung 5
J MyBatis - Update Problem Datenbankprogrammierung 4
S JPA: Problem mit Update von Daten Datenbankprogrammierung 7
c_sidi90 Hibernate Problem Table doesnt excist Datenbankprogrammierung 8
M Problem mit JPA - OneToMany-Relation Datenbankprogrammierung 3
I Hibernate: Composite Foreign Key Problem Datenbankprogrammierung 14
S JPA OptimisticLocking Problem Datenbankprogrammierung 11
I Derby/JavaDB Problem mit Befüllung von Tabelle Datenbankprogrammierung 7
JavaKaffee Derby/JavaDB Quartz-WebAnwendung - Connection/Treiber Problem Datenbankprogrammierung 47
I Problem mit ResultSet Datenbankprogrammierung 2
L Excel in MySQL importieren Problem Datenbankprogrammierung 5
S Problem beim Anlegen einer Tabelle Datenbankprogrammierung 5
R MS Access mit Java Problem mit Update Statment Datenbankprogrammierung 13
S MySQL Problem mit SELECT bzw encoding Datenbankprogrammierung 4
T Problem beim schreiben von daten Datenbankprogrammierung 4
M MySQL getConnection - Verbindung Problem Datenbankprogrammierung 2
K Hibernate + MySQL Problem... Datenbankprogrammierung 2
I MySQL MySQL – Proxy Problem Datenbankprogrammierung 4
M Problem mit Hibernate und Named Query Datenbankprogrammierung 1
M Problem mit Hibernate und Access Datenbankprogrammierung 9
C firebird problem Datenbankprogrammierung 5
F Problem mit Datenbankabfrage Datenbankprogrammierung 7
K SQL Problem mit Date Datenbankprogrammierung 3
jeppi MySQL Design-Problem: DB-Verbindung herstellen und halten - JdbcRowSet / Idle-Timeout? Datenbankprogrammierung 9
J sql abfrage ... Problem mit Datumswert Datenbankprogrammierung 3
G MySQL Connection Problem Datenbankprogrammierung 3
O MySQL Problem mit Umlauten?! Datenbankprogrammierung 2
E Hibernate Problem bei bidirektionaler 1:n Verbindung Datenbankprogrammierung 2
D MySQL Problem beim einfügen von Double-Zahlen Datenbankprogrammierung 4
M Oracle Problem mit Resultset Datenbankprogrammierung 11
W jpmdbc Problem -Beispiel funktioniert nicht Datenbankprogrammierung 9
W Verständnis-Problem JPA Grundlagen Datenbankprogrammierung 5
M Problem Array in BLOB-Feld in DerbyDB zu speichern Datenbankprogrammierung 5

Ähnliche Java Themen

Neue Themen


Oben