Ich habe das oben genannte Problem, dass meine Daten die ich meiner Datenbank hinzufüge die alten Daten aus der Tabelle löschen. Das ist natürlich so nicht geplant!
Kurzgefasst: Ich ziehe Daten als JSON-String über eine REST-API und speichere diese in einer itab. Ich loope anschließend über die itab und move die Werte in die korrespondierenden Felder meiner dbtab. Abschließend folgt das insert-Statement.
Das Programm zieht jeweils nur die Daten für eine gewünschte Komponente. Sobald ich das Programm erneut ausführe, für eine Andere, wird die erste Komponete aus dbtab gelöscht.
Ins Blaue hinein geraten, ohne dass du uns mehr Informationen zur DB-Tabelle oder deinem Programm verrätst, würde ich darauf tippen, dass die Daten gar nie auf die Datenbank gespeichert wurden, weil dein Programm in einem Kontext läuft der am Ende ein COMMIT WORK benötigt.
Insert kann nämlich keine Daten überschreiben. Wenn es einen Eintrag mit demselben Schlüssel findet wird nichts gespeichert und entweder der sy-subrc gesetzt oder eine Exception ausgelöst.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.
Ich sehe das genauso wie adt. Für mehr Details würden wir das vollständige Programm benötigen, nicht nur dieses doch etwas - sorry - primitiv anmutende Codefragment.
Also die Daten aus der Datenbanktabelle lassen sich auslesen. Ich habe das Problem inzwischen gelöst indem ich ein Nummernkreisobjekt hinzugefügt habe. Der Codeschnipsel war natürlich nur spärlich.