Anmelden

View Full Version : Schreiben in eine ganz normale DB-Datei



alex61
29-11-21, 13:36
Hallo zusammen,
habe wieder mal eine Frage. Ich werde heute schon den ganzen Tag fast wahnsinnig, weil
das plötzlich von einem auf den anderen Tag auftritt und so noch nie passiert ist.
Ich schreibe Datensätze ganz normal in eine DB-Datei auf der AS400. Die Datei hat
auch keine logischen Verknüpfungen. Trotzdem sind nach Durchlauf des Programms die geschriebenen Datensätze in der Datei völlig durcheinander und nicht in der Reihenfolge drin, in der sie eigentlich reinkamen. Ich brauche aber die Reihenfolge wie geschrieben.
Ich hatte das definitiv noch nie. Und gestern ging das definitiv auch noch, ja die ganze Zeit. Was kann das denn wieder sein. Irgendwie gibt's doch schwarze Magie denke ich. Oder das Problem sitzt in Form von mir vor dem Bildschirm. Wer was weiss, bitte Info, danke.
Grüße A.

Fuerchau
29-11-21, 13:41
Dann ist es folgendermaßen:
Die Datei steht auf REUSEDLT(*YES), somit wird beim Insert der nächste gelöschte Satz belegt.
Du hast also u.U. das erst mal alte Daten aus der Tabelle entfernt, so dass gelöschte Sätze vorhanden sind.
Benötigst du die Eingangsfolge sind 2 Dinge möglich:
1) Nach dem Delete ist ein RGZPFM erforderlich, um die Gelöschten zu entfernen.
2) du verwendest eine Identitiy-Spalte (o.ä.), i.d.R. Typ INT, die einfach eine Zahl hochzählt und die Tabelle hat einen Unique-Key darauf.
State of the art ist schon seit mindestens 20 Jahren die Variante 2.

alex61
29-11-21, 13:49
Ihr seid so top. Habe das gerade probiert und geht.
Aber ich habe wirklich bis heute noch nie Probleme damit gehabt. Vor Schreiben der Datei wird immer erst gelöscht.
Das Programm arbeitet schon 1,5 Jahre. Noch nie hatte ich das Problem.
Aber wie heisst's so schön: again what learnt
Dankeschön.

Fuerchau
29-11-21, 13:59
a) Ggf. konnte dann der RGZPFM nicht durchgeführt werden, es gibt da eine Option während des Betriebs.
b) ihr habt REUSEDLT eingeführt
c) ihr habt auf SQL-Table umgestellt.

holgerscherer
29-11-21, 17:01
Aber wie heisst's so schön: again what learnt


Noch eins zum Lernen - Dateien lesen in der gleichen Reihenfolge wie geschrieben ist schon mal ein Zeichen für Designprobleme. Und wenn, dann bitte immer einen passenden Key, ob Zähler, Identity, Timestamp oder Mondstand :)

-h

Fuerchau
29-11-21, 17:35
Disain-Fehler kenne ich nur bei Autos, ähm nun ja, bei Regierungen gibts das auch schon mal (der sich fragt wie man eine Zentralheitzung zu 65% aus erneuerbaren Energiequellen betreiben soll: wieder Nachtstromspeicheröfen in jedem Zimmer, wo doch nachts keine Sonne scheint und kein Wind weht).