PDA

View Full Version : Änderung Key in Datei



programmer400
20-06-11, 14:16
Meine Aufgabe:

Änderung des Schlüssel in einer Datei.

Problemchen bei Programmablauf:
READE
Ändern Key
UPDATE

Durch das Update looped das Pgm quasi, beginnt immer wieder von vorne zu lesen, da sich ja der Key verändert.

Bitte um Lösungsvorschläge, wie ich das am einfachsten lösen könnte.

B.Hauser
20-06-11, 14:23
Leseschleife wie gehabt (allerdings Datei als Input-Datei definieren).
Chain in andere (logische) Datei mit Relativer Satz-Nr. (oder anderem eindeutigem) Schlüssel. (Diese Datei als Update-Datei definieren)
Schlüssel-Werte in Update-Datei ändern
Datensatz zurückschreiben.


Ansonsten könnte mann das Ganze auch über SQL lösen:

Update MyTable
set (Key1, Key2, ... KeyN) = (Wert1, Wert2, .... WertN)
Where Key1 = Alt1 and Key2 = Alt2 ... and KeyN = AltN;

Birgitta

horni
29-06-11, 15:26
Wie wärs mit ner ganz einfachen Lösung?

Lese die Datei einfach nicht mit dem eigentlichen Feldnamen der Datei sondern definiere dir eine Variable im Key.
Also anstatt "Feldname" eine Variable "$irgendwas". Muß nur die gleiche Länge haben und an der richtigen Stelle im Key positioniert sein.
Dann liest du immer nach der Variablen "$irgendwas" und kannst das Feld "Feldname" ändern.

Sollte so eigentlich funktionieren.

Grüße
Markus

Bogomil
01-07-11, 12:50
Hallo Horni,

deine einfache Lösung funktioniert.
In ILE RPG kannst Du statt $irgendwas auch eine Schlüssel-DS (likerec(rfmt: *key) anlegen und diese mit %kds bei setll/chain/reade/.. verwenden. Da diese DS eine qualifizierte DS ist, verwendest Du im Programm z.B. keyDS.feldname.
So eine Lösung ist zwar nicht unbedingt ein guter Stil, rettet aber das frühe Wochenende ;)

Bogomil