PDA

View Full Version : Probleme bei Sortierung mit gleichen Schlüsselwerten



Seiten : [1] 2

harkne
01-12-22, 09:58
Hallo zusammen,

ich bin etwas überrascht.

Meine logische Datei (LF) hat als einziges Feld ein Time-Stamp-Feld.
(Als Anmerkung, das Timestampfeld wurde falsch und zwar ohne Millisekunden, gefüllt, deshalb die mehrfach vorkommenden gleichen Werte)
Wenn dort die Werte gleich sind, dachte ich, dass beim Lesen der Datei (READ), die Sortierung innerhalb von gleichen Werten nach dem FIFO Prinzip erfolgt. Also mehr oder weniger nach Recordnumber innerhalb der Datei.
Aber die Sätze werden komplett durcheinander gelesen.

Über SQL könnte ich einen ORDER BY mit RRN machen damit es wieder passt. Kann ich sowas schon in der LF machen

Kann mir jemand sagen wie man es hin bekommt, dass auch eine LF die Sätze in der richtigen Reihenfolge bringt

Vielen Dank

RobertMack
01-12-22, 10:15
Wenn die Datei auf REUSEDLT(*YES) steht oder regelmäßig reorganisiert wird, ändern sich auch die RRN.

Ansonsten könnte der Zusatz RECNO(RRN) in der F-Zeile helfen.

itec01
01-12-22, 10:33
Wenn die Datei auf REUSEDLT(*YES) steht oder regelmäßig reorganisiert wird, ändern sich auch die RRN.

Ansonsten könnte der Zusatz RECNO(RRN) in der F-Zeile helfen.

REUSEDLT ist *NO, RECNO geht leider nicht auf LF.

harkne
01-12-22, 10:37
Nein die Datei ist nicht auf REUSEDLT(*YES) und wurde auch nicht reorganisiert seit dem Schreiben.
Und der Zusatz RECNO(RRN) in der F-Zeile ändert auch nichts.
Trotzdem Danke

RobertMack
01-12-22, 10:42
zu: REUSEDLT ist *NO, RECNO geht leider nicht auf LF.

Bin mir da nicht sicher (kommt davon wenn man unvollständig aus dem Gedächtnis abschreibt ;- )

Die F-Zeile geht auf (zusätzliche) IF, ohne das K vor DISK und mit RENAME(Satzformat:xxx) und RECNO(RRN) wobei RRN als 10,0 zu declarieren ist.

Ich hab das irgendwann mal gebraucht um mit Satznummern aus SDS Nachrichten zu arbeiten (obwohl die Datei nicht mehr als Keyed definiert ist kann man mit der ermittelten RRN chainen).

itec01
01-12-22, 10:51
Sorry, verstehe nicht, wie das funktionieren soll. Wir lesen eine LF nach Datum und möchten, dann alle Sätze in RRN haben, aber primär sortiert nach Datum, d.h. bei gleichem Datum soll die Sortierung nach RRN funktionieren. Ich dachte eigentlich, dass dies eh schon so ist, daher wundert mich das ganze. Eventuell ein bug im OS/400?

RobertMack
01-12-22, 10:55
Da hast Du recht, hinter dem Datum geht das nicht (hatte ich übersehen).

Da bleibt nur SQL oder View.

itec01
01-12-22, 11:07
Da hast Du recht, hinter dem Datum geht das nicht (hatte ich übersehen).

Da bleibt nur SQL oder View.

Schade, aber ist es denn nicht so, dass bei einer LF immer zuerst nach Key und dann RRN (FIFO) sortiert wird?

Robi
01-12-22, 11:42
Nein, das ist nicht so.

innerhalb des gleichen (vollständigen) Schlüssels ist das Zufall, wie die Daten kommen.

itec01
01-12-22, 12:02
Nein, das ist nicht so.

innerhalb des gleichen (vollständigen) Schlüssels ist das Zufall, wie die Daten kommen.

Ok, verstanden, danke, dann bleibt ja nur eins:
entweder einen eindeutigen Key in die Datei oder auf SQL mit RRN umbauen

Noch eine andere Idee?