wie komme ich an den Primärschluessel (ID wird automatisch erstellt)
wenn ich mit einem SQL statement eine Zeile hinzufüge.
also
sSQL = "INSERT ..... "
statement = ...... createStatement
oResSet = Statement.executeQuery ( sSQL )
kann ich aus dem ResultSet die Id der neuen Zeile rausbekommen ?
oder gibts da einen anderen Weg ?
Vielen Dank,
werner frank
ID auslesen nach Insert
Moderator: Moderatoren
Hey Frank,
ich löse das Problem in der Regel wie folgt: Ich habe im Datenset ein Textfeld, das eine bestimmte Information aufnimmt. Dort schreibe ich beim "Insert" zunächst einen bestimmten Text - bei mir "neu" hinein. Dieser Text ist eindeutig und kann in der Form dort sonst nicht vorkommen.
Nun lese ich den Dtensatz per "Select" wieder aus (mit Suchbedingg "neu") , habe nun die ID und überschreibe das Textfeld nun mit den tatsächlichen Informationen (bei mir ein Timestamp
Wahrscheinlich könntest du auch vor dem Einfügen den maximalen ID auslesen (Bei HSQLDB ist der ja numerisch) und dann intern um eins erhöhen. das sollte auch funktionieren.
Gruss
Thomas
ich löse das Problem in der Regel wie folgt: Ich habe im Datenset ein Textfeld, das eine bestimmte Information aufnimmt. Dort schreibe ich beim "Insert" zunächst einen bestimmten Text - bei mir "neu" hinein. Dieser Text ist eindeutig und kann in der Form dort sonst nicht vorkommen.
Nun lese ich den Dtensatz per "Select" wieder aus (mit Suchbedingg "neu") , habe nun die ID und überschreibe das Textfeld nun mit den tatsächlichen Informationen (bei mir ein Timestamp

Wahrscheinlich könntest du auch vor dem Einfügen den maximalen ID auslesen (Bei HSQLDB ist der ja numerisch) und dann intern um eins erhöhen. das sollte auch funktionieren.
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Danke, hat schon geholfen.
Darauf, dass HSQLdb einfach die ID hochzählt will ich mich lieber nicht verlassen. Bei so nem Prinzipienreiter wie mir sollte das eher datenbank-unabhängig bleiben. Also ich mach das auch mit ner eigenen Kennung die dann wieder zusammen mit der ID auslese und dann nochmal zurücksetze. Insofern würde mir das wahrscheinlich auch nichts nützen wenn das im Resultset drinstünde. Das wäre dann vielleicht auch nur bei hsql so.
Ist wohl der sicherste, datenbankunabh. Weg so auch wenn das 3 Schritte sind.
danke,
werner
Darauf, dass HSQLdb einfach die ID hochzählt will ich mich lieber nicht verlassen. Bei so nem Prinzipienreiter wie mir sollte das eher datenbank-unabhängig bleiben. Also ich mach das auch mit ner eigenen Kennung die dann wieder zusammen mit der ID auslese und dann nochmal zurücksetze. Insofern würde mir das wahrscheinlich auch nichts nützen wenn das im Resultset drinstünde. Das wäre dann vielleicht auch nur bei hsql so.
Ist wohl der sicherste, datenbankunabh. Weg so auch wenn das 3 Schritte sind.
danke,
werner