Erschöpfte Ergebnismenge

Status
Nicht offen für weitere Antworten.
C

Corny

Gast
Hallo!
Ich habe ein kleines Problem. Ich bekommen bei der methode rs.getString(0) einen fehler. und zwar erschöpfte ergebnismenge. Kann mir vielleicht jemand sagen woran das liege könnte? rs.GetRowCount() liefert mir 1 zurück.
danke corny

Code:
 private String getRefId(String eid) {
    String sql = "Select refid from referate where eid =" + eid;
    Object refid = "";
    conn = ConnectionFactory.get();
    stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                                 ResultSet.CONCUR_UPDATABLE);

    try {
      rs = stmt.executeQuery(sql);
      System.out.println(sql);
      if (rs != null) {
          refid = rs.getString(0);
      }
      System.out.println("refid: " + refid);
    }
    catch (SQLException e) {
      e.printStackTrace();
    }
    return refid;
  }

java.sql.SQLException: Erschöpfte Ergebnismenge
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)
at oracle.jdbc.driver.ScrollableResultSet.getOracleObject(ScrollableResultSet.java:655)
at oracle.jdbc.driver.ScrollableResultSet.getObject(ScrollableResultSet.java:1162)
at oracle.jdbc.driver.ScrollableResultSet.getObject(ScrollableResultSet.java:1096)
at oracle.jdbc.driver.UpdatableResultSet.getObject(UpdatableResultSet.java:730)
at usertool.WriteDocuments.getRefId(WriteDocuments.java:198)
at usertool.WriteDocuments.writeWithoutPDF(WriteDocuments.java:136)
at gui.UserTool.CopyDocs(UserTool.java:679)
at gui.UserTool.bUebernehmen_actionPerformed(UserTool.java:659)
at gui.UserTool_bUebernehmen_actionAdapter.actionPerformed(UserTool.java:911)
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.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)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
 

citizen_erased

Bekanntes Mitglied
stell dir die ergebnismenge als tabelle mit zeilen und spalten vor. du greifst auf die erste spalte zu. allerdings musst du erstmal in die erste zeile gelangen. das geschieht mit
Code:
rs.next()

einschlägige tutorials helfen dir weiter.
 
G

Guest

Gast
nein das ist es leider nicht! Ich erhalte immer noch den fehler erschöpfte ergebnismenge

Code:
 private String getRefId(String eid) {
    String sql = "Select refid from referate where eid =" + eid;
    Object refid = "";

    try {
      rs = stmt.executeQuery(sql);
      System.out.println(sql);
      if (rs != null) {
        rs.next();
        refid = rs.getString(0);
      }
      System.out.println("refid: " + refid);
    }
    catch (SQLException e) {
      e.printStackTrace();
    }
    return refid;
  }
 

citizen_erased

Bekanntes Mitglied
ach ja.. anders als sonst, beginnt die erste spalte beim index 1 nicht bei 0
also:

Code:
getString(1)

war es das?
 
C

Corny

Gast
auch das löst mein problem leider noch nicht. ich verwende rs.next() und sage auch rs.getString(1); aber ich bekomme ich immer noch die exception erschöpfte ergebnismenge. getRowCount() liefert mir 1. und auch wenn ich die sql query "noraml" in meinem worksheet ausfürhe funktioniert diese. Also es kann auch nicht daran liegen das ich nicht zurückgeliefert gekomme. noch eine idee?

Code:
  private String getRefId(String eid) {
    String sql = "Select refid from referate where eid =" + eid;
    String refid = "";

    try {
      rs = stmt.executeQuery(sql);
      System.out.println(getRowCount());
      System.out.println(sql);
      if (rs.next())
        refid = rs.getString(1);

      System.out.println("refid: " + refid);
    }
    catch (SQLException e) {
      e.printStackTrace();
    }
    return refid;
  }
 

citizen_erased

Bekanntes Mitglied
in welcher zeile wird die ausnahme geworfen?

ansonsten, deklariere mal das Statement und das ResultSet lokal in der methode.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen

Ähnliche Java Themen


Oben