Veröffentlicht 21. November 200717 j hallo, ich habe folgenden sql-String: String sqlMax = "SELECT MAX(INT(Kontaktnummer))+1 from Kontaktadressen;"; nun möchte ich den zurückgelieferten wert in einem ResultSet speichern und ihn dann auf der Konsole ausgeben lassen. ResultSet rs = null; rs = stmt.executeQuery(sqlMax); System.out.println(rs.getInt(1)); irgendwie funktioniert das nicht! bitte um Hilfe! gruß
21. November 200717 j Hallo Alex, setzte um dein System.out.println(rs.getInt(1)) ein try { System.out.println(rs.getInt(1)); } catch(SQLException e) { System.err.println("Fehler"); e.printStacktrace; } Dann müsste es gehen. Wenn nicht dann bekommst du in der Konsole eine fehlermeldung mit der du mehr anfangen kannst. Gruß
21. November 200717 j String sqlMax = "SELECT MAX(INT(Kontaktnummer))+1 from Kontaktadressen;"; rs = stmt.executeQuery(sqlMax); System.out.println(sqlMax); try{ System.out.println(rs.getInt(1)); }catch(SQLException e){ System.err.println("Fehler"); e.printStackTrace(); } [21.11.07 16:11:42:581 CET] 00000023 SystemOut O java.lang.NullPointerException [21.11.07 16:11:42:581 CET] 00000023 SystemOut O Fehler
21. November 200717 j Kannst Du das "drumherum" noch posten? Sollte in etwa so aussehen: Connection c = ...; String sqlMax = "SELECT MAX(INT(Kontaktnummer))+1 from Kontaktadressen;"; System.out.println(sqlMax); try{ Statement stmt = c.createStatement(); ResultSet rs = stmt.executeQuery(sqlMax); System.out.println(rs.getInt(1)); } catch (SQLException e){ System.err.println("Fehler: "+e.getLocalizedMessage()); e.printStackTrace(); } Korrekterweise sollte man das ResultSet und das Statement anschließend wieder schließen, egal ob erfolgreich oder nicht, aber das nur am Rande. Siehe auch Beispielabfrage in der allseitsbeliebten Insel.
21. November 200717 j habe den fehler gefunden hatte 1 statement und beim ersten mal ein rs zugewiesen und dann das statement überschrieben.... dachte das würde so gehen habe jetzt 2 statements benutzt gruß
23. November 200717 j SELECT MAX(INT(Kontaktnummer))+1 from Kontaktadressen Nur der Neugierde halber: Du machst das aber nicht um eine fortlaufende Nummer zu ermitteln oder? Dim
26. November 200717 j Mal davon abgesehen, dass Du in einer MultiUser Umgebung doppelte Werte bekommen kannst, ist natürlich noch das zusätzliche SQL dabei. Jede Datenbank bietet eine Möglichkeit eindeutige Werte zu vergeben. Je nachdem welche DB Du verwendest gibt es autoinc Spalten Sequencen etc. Dim
26. November 200717 j Also machen wir's von Anfang an falsch. :uli Dim PS: Hab grad gesehen Du bist ja Microsoft Certified Application Developer. Dann passt das schon.
26. November 200717 j ist mir völlig wurscht! ist eine access-datenbank, welche ich nicht angelegt habe, also von daher. ist auch nur zu übungszwecken! gruß
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.