PDA

View Full Version : Nur einzelne Felder updaten



dino
09-06-09, 14:24
AS/400 ist ja so langsam mein Freund.
Aber: Kann ich, wie bei RPGII möglich, einzelne DB-Felder einer extern beschriebenen Datei mit "UPDATE" updaten ohne Output-Bestimmungen?

Fuerchau
09-06-09, 14:43
Einfach als UF in den F-Bestimmungen angeben.

dino
09-06-09, 15:04
Zur Klarstellung: Ein (altes) Programm liest nur Datei und verändert Felder dieser Datei auch, allerdings nur für die Druckausgabe. Ich möchte aber nur einige wenige Felder geändert zurückschreiben.

RobertMack
09-06-09, 16:16
Falls das im gleichen Programm geschehen soll (gelesene Felder für Druckausgabe ändern, schüttel...) würde ich die ausgewählten Felder
- entweder mit SQL ändern oder, falls nicht gewünscht
- per Chain/Update auf eine zweite logische Datei, welche auf die betreffenden Felder reduziert und in den F-Bestimmungen neben dem Rename Satzformat auch mit einem Prefix versehen ist

dino
10-06-09, 09:53
Die Lösung Logische Datei mit diesen speziellen Feldern ist wohl die sauberste Lösung. Danke.

Fuerchau
10-06-09, 12:59
Wobei das wirklich vollkommen unnötig ist, da die LF ja nicht weniger lesen/schreiben muss.

Wenn du auf der PF liest und eben nur die benötigten Felder per Programm änderst, werden doch automatisch alle anderen Felder mit ihrem vorherigen Wert zurückgeschrieben.

Wo ist also dein Problem ?

KM
10-06-09, 13:54
Meinst Du in etwa sowas ?

/free
chain empno record;
salary = salary + 2000;
status = STATEXEMPT;
update record %fields(salary:status);
/end-free

Gruß,
KM

RobertMack
10-06-09, 14:13
Wo ist also dein Problem ?

Er schrieb, dass andere Felder im Programm verändert werden (Druckausgabe)...

KMs Lösung hatte ich gar nicht auf dem Schirm, merk' ich mir ;-)