[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    May 2004
    Beiträge
    444

    Probleme bei Sortierung mit gleichen Schlüsselwerten

    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

  2. #2
    Registriert seit
    Jan 2003
    Beiträge
    746
    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.

  3. #3
    Registriert seit
    Sep 2004
    Beiträge
    327
    Zitat Zitat von RobertMack Beitrag anzeigen
    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.

  4. #4
    Registriert seit
    May 2004
    Beiträge
    444
    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

  5. #5
    Registriert seit
    Jan 2003
    Beiträge
    746
    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).

  6. #6
    Registriert seit
    Sep 2004
    Beiträge
    327
    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?

  7. #7
    Registriert seit
    Jan 2003
    Beiträge
    746
    Da hast Du recht, hinter dem Datum geht das nicht (hatte ich übersehen).

    Da bleibt nur SQL oder View.

  8. #8
    Registriert seit
    Sep 2004
    Beiträge
    327
    Zitat Zitat von RobertMack Beitrag anzeigen
    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?

  9. #9
    Registriert seit
    Jun 2001
    Beiträge
    1.973
    Nein, das ist nicht so.

    innerhalb des gleichen (vollständigen) Schlüssels ist das Zufall, wie die Daten kommen.
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  10. #10
    Registriert seit
    Sep 2004
    Beiträge
    327
    Zitat Zitat von Robi Beitrag anzeigen
    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?

  11. #11
    Registriert seit
    Aug 2001
    Beiträge
    2.869
    Hast Du schon einmal versucht einen Derived Index mit einer Schlüssel-Spalte auf die relative Satz-Nr. anzulegen?
    Etwa so:
    Code:
    Create Index YourSchema.YourIndex
       On YourSchema.YourTAble 
          (YourTimeStp Asc, RRN(YourTable) RRNTbl Asc)
          RcdFmt YourFmt 
          Add All Columns;
    SQL Indices können mit native I/O genauso verarbeitet werden wie DDS beschriebene geschlüsselte logische Dateien.
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  12. #12
    Registriert seit
    Sep 2004
    Beiträge
    327
    Zitat Zitat von B.Hauser Beitrag anzeigen
    Hast Du schon einmal versucht einen Derived Index mit einer Schlüssel-Spalte auf die relative Satz-Nr. anzulegen?
    Etwa so:
    Code:
    Create Index YourSchema.YourIndex
       On YourSchema.YourTAble 
          (YourTimeStp Asc, RRN(YourTable) RRNTbl Asc)
          RcdFmt YourFmt 
          Add All Columns;
    SQL Indices können mit native I/O genauso verarbeitet werden wie DDS beschriebene geschlüsselte logische Dateien.
    Danke für den Hinweis, das klingt gut.

Similar Threads

  1. Übertragung von gleichen Datenstrukturen
    By alex61 in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 12-03-20, 10:29
  2. Erzwungene Sortierung bei FTP Übertragung
    By takeoff/400 in forum NEWSboard Programmierung
    Antworten: 11
    Letzter Beitrag: 29-09-08, 11:42
  3. SQL-Update mit Werten aus der gleichen Tabelle
    By Ewald in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 14-02-06, 15:51
  4. OPNQRYF mit gleichen Dateien
    By olafu in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 26-04-05, 09:57
  5. Zugriffsproblem mit gleichen Schlüsseln
    By TARASIK in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 17-03-05, 00:49

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •