-
Heftige free form Frage
Ich habe ein tolles Konstrukt einer logischen Datei mit mehreren Records aus verschiedenen Files drin in fixed RPGLE. Das hat/hatte den Vorteil, dass ich nur ein File lesen musste und ich die Records aufgrund der Record DS mit einer Bezugszahl identifizieren konnte.
Also:
I mySuperRec 55 (Bezugszahl)
I myWeirdRec 99
....
Je nachdem was kommt, geht die entsprechende BZ an.
Geht das auch in free?
Und jetzt keine Diskussionen über Design bitte!
Danke.
kf
-
Hat nix mit Freeform zu tun:
https://www.ibm.com/docs/en/i/7.5?to...edback-example
" IO_RCD_FMT CHAR(10) POS(261); // Rcd format name"
-
Zitat von camouflage
Ich habe ein tolles Konstrukt einer logischen Datei mit mehreren Records aus verschiedenen Files drin in fixed RPGLE. Das hat/hatte den Vorteil, dass ich nur ein File lesen musste und ich die Records aufgrund der Record DS mit einer Bezugszahl identifizieren konnte.
Also:
I mySuperRec 55 (Bezugszahl)
I myWeirdRec 99
....
Je nachdem was kommt, geht die entsprechende BZ an.
Geht das auch in free?
Und jetzt keine Diskussionen über Design bitte!
Danke.
... da helfen auch keine Diskussionen, da helfen nur noch Handschellen und ein Heizkörper!
-
Ich weiss gar nicht was Du hast Dieter, ist doch eine kreative Lösung. :-D
kf
-
In SQL macht man das ja heute per Union. Also so unmodern ist die LF also gar nicht.
select 'TableA' as TableName, F1, F2 , F3 ..., FN from TableA
union all
select 'TableB' as TableName, F1, F2 , F3 ..., FN from TableB
Wobei man hier halt eine Spalte hinzufügen muss um die Herkunft zu eruieren.
Anders macht man das bei ETL-Prozessen für die gemeinsame Konsolidierung von BI-Auswertungen ja auch nicht.
Übrigens:
Bei Bildschirmen mit mehreren aktiven Satzformaten (geht mit Invite, Overlay aber ohne Overlap) und einem "Read File" statt "Read Format", erfährt man auch erst aus dem IO-Feedback (INFDS), welches Format gelesen wird.
-
Hier ist noch ein Lösungsbeispiel in fully free. (Ich habe es aber nicht ausprobiert)
dcl-s MyFormat1DS likeds(MyFormat1);
dcl-s MyFormat2DS likeds(MyFormat2);
exec sql declare C1 cursor for select * from MyLogicalFile;
exec sql open C1;
dow sqlstate = '00000';
exec sql fetch C1 into :MyFormat1DS, :MyFormat2DS;
if sqlstate = '00000';
// Verarbeiten des gelesenen Datensatzes
endif;
enddo;
exec sqlclose C1;
[/CODE]
-
Wahrscheinlich wäre es gut, die Formate vor jedem Fetch zu clearen. Nach dem Fetch muss man dann prüfen, welches Format gefüllt ist.
LG, Dieter
-
Zitat von Fuerchau
In SQL macht man das ja heute per Union. Also so unmodern ist die LF also gar nicht.
select 'TableA' as TableName, F1, F2 , F3 ..., FN from TableA
union all
select 'TableB' as TableName, F1, F2 , F3 ..., FN from TableB
Wobei man hier halt eine Spalte hinzufügen muss um die Herkunft zu eruieren.
Anders macht man das bei ETL-Prozessen für die gemeinsame Konsolidierung von BI-Auswertungen ja auch nicht.
Übrigens:
Bei Bildschirmen mit mehreren aktiven Satzformaten (geht mit Invite, Overlay aber ohne Overlap) und einem "Read File" statt "Read Format", erfährt man auch erst aus dem IO-Feedback (INFDS), welches Format gelesen wird.
... das kann man so nicht stehen lassen. Ein Union ist genau das Gegenteil von dem vorher beschriebenen Datenkompost, auf dem Kraut und Rüben liegen. Ein Union führt gleichartige Daten, die von Dilettanten verstreut gespeichert wurden zusammen.
D*B
-
Bzgl. SQL meine ich aus der Vergangenheit, dass bei einer Multi-Format-LF von SQL ausschließlich das 1. Format gelesen wird.
Somit ist das ein rein Nicht-SQL-Thema.
Die Multiformat-LF gibts in vielen ERP-Systemen und vor allem bei Nicht-SQL-Entwicklern;-).
-
Ja soll ich mal erklären, dass man Gnocchi nicht Knocktschi ausspricht oder der Chianti auch nicht Tschianti heisst. Danke Baldur und Dieter, der D*B kann sich gerne der deutschen Aussprache des italienischen bedienen.
Abgesehen davon, ich lass die DS mal fixed stehen - es funktioniert ja, das Programm ist ja free. Ist halt eine "alte" Lösung und was soll ich einen grossen Aufwand betreiben, nur damit es schöner aussieht. Alles andere würde und Redesign fallen und ja, SQL kann ich auch.
Dachte nur, es gäbe auf die Schnelle eine Idee/Lösung.
kf
-
Ist die INFDS denn keine Lösung? Da kann man ja für Free folgende Lösung verwenden:
*in55 = IO_RCD_FMT = 'FORMAT1';
*in56 = IO_RCD_FMT = 'FORMAT2';
Es scheint ja allgemein nicht bekannt zu sein, dass man Ergebnisse von If-Abfragen als Ausdruck einem Indicator zuweisen kann.
Es sieht zwar komisch aus, aber eine Klammer kann man wegen der Optik auch setzen:
*in55 = (IO_RCD_FMT = 'FORMAT1');
*in56 = (IO_RCD_FMT = 'FORMAT2');
Der Vorteil ist gerade bei DSPF/PRTF sowie anderen Abfragen weniger Schreibarbeit, also statt
if IO_RCD_FMT = 'FORMAT1';
*in55 = *on;
else;
*in55 = *off;
endif;
Das klappt mit jedem If-Konstrukt, also auch mit and/or/KLammern.
-
Baldur,
Primär Resultate, "schön" für später. In der Regel geben Resultate eher was in die Büchse.
Ich probier es später aus.
kf
Similar Threads
-
By tarkusch in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 23-02-17, 11:45
-
By camouflage in forum IBM i Hauptforum
Antworten: 7
Letzter Beitrag: 29-04-16, 14:17
-
By camouflage in forum IBM i Hauptforum
Antworten: 29
Letzter Beitrag: 19-11-13, 15:52
-
By lossin in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 08-02-06, 15:09
-
By Peter Janocha in forum NEWSboard load'n'go
Antworten: 1
Letzter Beitrag: 04-04-01, 19:38
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