No data found: SQL-Abfrage funktioniert nur beim Debuggen

woohoo

Mitglied
Hallo,

ich möchte SQL-Abfragen von einer .mdb (Access) Datei druchführen und habe dabei das Problem, dass ich bei einer stinknormalen Primary-Key-Abfrage (SELECT * FROM Tabelle WHERE ID = 17) die Daten von einem normalen Integerfeld über ResultSet.getString("ZAHL") nicht auslesen kann.

Tabellenstruktur sieht so aus:
Tabelle mit Felder ID INTEGER, ZAHL INTEGER, TEXT VARCHAR

ID und TEXT auslesen ist kein Problem, mit der ZAHL funktioniert es aber aus irgendeinem Grund nicht ...

Der Fehler tritt komischerweise nicht auf, wenn ich in Eclipse im Debugmodus bin und vor der Zeile res.getString(columnName) denselben Aufruf im Expressions-Fenster ausführe ... ich bin echt ratlos ... kann es sein, dass ich der Abfrage irgendwo etwas Zeit geben muss? Laufen da im Hintergrunde irgendwelche Threads gleichzeitig ab wovon ich nichts weiß?

Aber immer funktionierts im Debugger auch nicht, manchmal steht dann nur "Source not found" da und nichts kommt mehr -.-


Java:
java.sql.SQLException: No data found
	at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbcResultSet.getString(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbcResultSet.getString(Unknown Source)
	at TableAccess.getValue(TableAccess.java:332)
	at TableAccess.getValueByFieldLoad(TableAccess.java:352)
	at EditPanel.actionPerformed(EditPanel.java:318)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(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.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(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.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$000(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$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)


lg,
woohoo
 
Hallo

Habe jetzt nicht lange darüber meditiert, aber so spontan würde ich sagen versuchs mal mit
Java:
rs.getInt("ZAHL");
anstelle von
Java:
rs.getString("ZAHL");

Ev bringt das was.

Grüsse
nahum77
 
Hi,

bin beim Stack-Trace googeln wieder auf meinen eigenen Beitrag gestoßen ^^

Weiß bezüglich diesem Problem jemand eine Lösung?
Dumme Frage, aber kann es sein, dass die Daten aus dem ResultSet verloren gehen, wenn sie schon einmal ausgelesen wurden oder so?

Ich lese die Daten jetzt auch immer mit getString() aus und parse dann nachher auf Integer, aber das Problem ist immer noch das gleiche... Es tritt eher sporadisch auf: 20 Abfragen, die im Prinzip nichts anders machen, funktionieren und dann funktioniert wieder eine nicht ;(
 
Das hier ist laut deinem ersten Beitrag deine Abfrage:
SELECT * FROM Tabelle WHERE ID = 17

Wenn du 20 Abfragen mit 20 verschiedenen IDs machst, dann ist eben die ID 21 nicht vorhanden und funktioniert deswegen "sporadisch" auch nicht. Die Fehlermeldung ist ja "No data found".
 

Zurück
Oben