Announcement

Collapse
No announcement yet.

Darf man ResultSet.getString nur 1 mal aufrufen?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Darf man ResultSet.getString nur 1 mal aufrufen?

    Hallo,<br><br>wenn ich folgenden Code ausführen, dann kommt es bei dem 2. getString zu einer SQLException - No data found:<pre>
    int id = 1;
    try {
    ResultSet rSet = stmt.executeQuery( "SELECT id, vorname, nachname FROM adressen WHERE id = " + id );
    if (rSet.Next() == true) {
    String lVorname = rSet.getString( rSet.findColumn("vorname") );

    // Fehler:
    <b>String lVorname2 = rSet.getString( rSet.findColumn("vorname") );</b>
    }
    catch ....

    <br><br>Ist dies normal?<br><br>Java-SDK 1.4.2, Firebird 1.5.1, JDBC-ODBC-Bridge<br>Vielen Dank bereits im vorhinein Stephan H.

  • #2
    Hallo Stephan,

    Laut JDBC-Spezifikation sollten die Spalten nur einmal gelesen werden, d.h. es ist nicht garantiert, das doppelte Aufrufe erfolgreich sind. Allerdings erlauben die meisten Treiber mehrfache Aufrufe.

    Ich glaube mich zu erinnern, das der JDBC-ODBC-Treiber in der Ecke Probleme hat. Du kannst es mal mit anderen Einstellungen beim erzeugen des Statements probieren, kann sein das es dann geht. Z.b.

    <PRE>
    Statement statement = con.createStatement(ResultSet.TYPE_SCROLL_INSENSIT IVE, ResultSet.CONCUR_READ_ONLY);
    </PRE>

    Im Zweifelsfall ist es aber sicher besser, die Spalte nur einmal zu lesen.

    Gruß,

    Alwi

    Comment

    Working...
    X