-
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).
-
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?
-
Da hast Du recht, hinter dem Datum geht das nicht (hatte ich übersehen).
Da bleibt nur SQL oder View.
-
Zitat von RobertMack
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?
-
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!)
-
Zitat von Robi
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?
-
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.
-
Zitat von B.Hauser
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.
-
Vielleicht liest du die Daten ganz einfach per SQL ein?
Wenn du für die Felder eine DS angelegt hast reicht ein simpler "Select * from table where ... order by datum, rrn(table)" mit passendem Fetch.
Das ist viel einfacher und effektiver als das Ganze rumgeeiere;-).
Ich modifiziere für Kunden gerne alte Programme. Da lohnt sich schon mal den einen oder anderen Zugriff auf SQL umzustellen. Besonders wenn Where-Klauseln oder Sortierungen komplexer sind.
An der F-Bestimmung braucht man da nichts zu ändern.
Ansonsten prüfe mal deine LF-Source:
https://www.ibm.com/docs/en/i/7.3?to...-logical-files
-
Zitat von Fuerchau
Vielleicht liest du die Daten ganz einfach per SQL ein?
Wenn du für die Felder eine DS angelegt hast reicht ein simpler "Select * from table where ... order by datum, rrn(table)" mit passendem Fetch.
Das ist viel einfacher und effektiver als das Ganze rumgeeiere;-).
Ich modifiziere für Kunden gerne alte Programme. Da lohnt sich schon mal den einen oder anderen Zugriff auf SQL umzustellen. Besonders wenn Where-Klauseln oder Sortierungen komplexer sind.
An der F-Bestimmung braucht man da nichts zu ändern.
Ansonsten prüfe mal deine LF-Source:
https://www.ibm.com/docs/en/i/7.3?to...-logical-files
Danke, aber der FIFO bei der LF hat nichts gebracht. Die Umwandlung habe ich richtig gemacht. Muss die PF auch FIFO haben?
-
Nur wenn sie einen eigenen Key hat.
Da du aber Reusedlt nicht nutzt gilt eigentlich sowieso die Eingangsfolge nach RRN.
Warum sträubst du dich gegen SQL?
-
Zitat von Fuerchau
Nur wenn sie einen eigenen Key hat.
Da du aber Reusedlt nicht nutzt gilt eigentlich sowieso die Eingangsfolge nach RRN.
Warum sträubst du dich gegen SQL?
ich sträube mich gar nicht, ich mache viel SQL, nur in dem alten Programm war es halt nach altem Muster mit SETLL und READE. Aber das ist ja genau das Problem, dass die LF eben nicht nach RRN vorgeht und auch oben im Thread so bestätigt wurde. Ich dachte eigentlich auch, dass generell nach RRN gelesen wird, aber wohl nicht. Wenn ich in die LF mit upddta durchblättere, dann wird eben irgendwie sortiert, nur nicht nach RRN. Daher auch die Frage von mir, ob es eventuell ein Bug ist.
Similar Threads
-
By alex61 in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 12-03-20, 09:29
-
By takeoff/400 in forum NEWSboard Programmierung
Antworten: 11
Letzter Beitrag: 29-09-08, 10:42
-
By Ewald in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 14-02-06, 14:51
-
By olafu in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 26-04-05, 08:57
-
By TARASIK in forum IBM i Hauptforum
Antworten: 9
Letzter Beitrag: 16-03-05, 23:49
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks