Gast alexC++ Geschrieben 21. November 2007 Geschrieben 21. November 2007 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ß Zitieren
sacklzement Geschrieben 21. November 2007 Geschrieben 21. November 2007 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ß Zitieren
Gast alexC++ Geschrieben 21. November 2007 Geschrieben 21. November 2007 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 Zitieren
frquadrat Geschrieben 21. November 2007 Geschrieben 21. November 2007 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. Zitieren
Gast alexC++ Geschrieben 21. November 2007 Geschrieben 21. November 2007 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ß Zitieren
dr.dimitri Geschrieben 23. November 2007 Geschrieben 23. November 2007 SELECT MAX(INT(Kontaktnummer))+1 from Kontaktadressen Nur der Neugierde halber: Du machst das aber nicht um eine fortlaufende Nummer zu ermitteln oder? Dim Zitieren
Gast alexC++ Geschrieben 26. November 2007 Geschrieben 26. November 2007 doch mache ich! Wenn du was besseres kennst, dann sag bescheid! gruß alex Zitieren
dr.dimitri Geschrieben 26. November 2007 Geschrieben 26. November 2007 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 Zitieren
Gast alexC++ Geschrieben 26. November 2007 Geschrieben 26. November 2007 ja klar, das spielt aber im moment keine rolle. gruß alex Zitieren
dr.dimitri Geschrieben 26. November 2007 Geschrieben 26. November 2007 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. Zitieren
Gast alexC++ Geschrieben 26. November 2007 Geschrieben 26. November 2007 ist mir völlig wurscht! ist eine access-datenbank, welche ich nicht angelegt habe, also von daher. ist auch nur zu übungszwecken! gruß Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.