PDA

View Full Version : readpe geht nicht



Seiten : [1] 2

ILEMax
04-07-13, 11:23
Hi,
ein ILERPG Pgm das in einer ACTGRP A läuft liese eine nicht unique LF-Datei
zunächst mit setll und reade.
Dann wird ein update gemacht und ein nicht-ILE Pgm gerufen (das andere LF's dieser Datei liest)
Danach brauch ich den Satz nochmal.
Also: readpe
Das klappt aber nicht, der liest nix.
Wo steht nach dem Update der Zeiger?
noch AUF dem Satz? Wie bekomme ich den dann?

(Bäume, Bäume nichts als Bäume, und dazwischen Zwischenräume, und dahinter man glaubt es kaum: noch ein Baum)

Der ILEMax

Fuerchau
04-07-13, 11:33
Das ist dann ein Problem, wenn Schlüsselfelder verändert wurden die diese LF betreffen, dann ist der Satz woanders einsortiert.

Das bessere Verfahren ist dann, über die LF zu lesen und per Unique-Key dann über die PF für Update zu lesen.

ILEMax
04-07-13, 11:47
Das nicht-ILE Pgm liest zwar diesen Datensatz, ändert jedoch NICHT den Key


Und die 'besser ist' Theorie kenn ich.
Aber was nicht geht geht nicht.

In diesem Fall muß ich so wie beschreieben arbeiten.

Ich mach nun ein read und anschl. ein readpe. Nicht schön aber selten ...)
das klappt.
ILEMax

Pikachu
04-07-13, 12:41
Danach brauch ich den Satz nochmal.
Also: readpe
Wär da ein CHAIN nicht besser geeignet?

Fuerchau
04-07-13, 12:44
Chain positioniert auf dem 1. Satz mit gleichem Schlüssel, aber er hat ja mehrere davon ;).

Fuerchau
04-07-13, 14:21
Nach dem Update steht der Dateizeiger unverändert.
Ein erneutes Lesen per "current" gibt es leider nicht.
Eine REDPE liest also zwangsläufig den vorherigen Satz, bist du am Anfang liefert der natürlich EOF.

Deine Methode read/redpe ist also logisch, da du ja erneut den selben Satz lesen willst.

Pikachu
04-07-13, 14:25
Besser wäre READE/READPE aber das geht auch nur gut solange der READE nicht fehlschlägt. Eventuell wäre ein CHAIN nach relativer Satznummer eine Möglichkeit?

Fuerchau
04-07-13, 14:34
Das geht auch, allerdings benötigt man dann die Datei 2 Mal im Programm sowie eine INFDS, in der die Satznummer dann drinsteht.
Ist die Datei per K-Zugriff definiert, muss ich einen Schlüssel angeben.
Ich muss allerdings zugeben, dass ich den Chain mit Satznummer auf eine K-Datei noch nicht ausprobiert habe.

ILEMax
04-07-13, 14:36
Wegen dem EOF bei reade mach ich ja nur ein read und kein reade.
Ich weis, das er immer einen anderen Satz findet.
Chain nach relativer Satznr. währe die alternative.
Aber ich war eigendlich sicher, das der READPE (ohne read) meinen Satz findet.
der ILEMax

Fuerchau
04-07-13, 15:07
Der Update verändert doch die Zeigerposition nicht!
Readp/ReadPe kann also nur den vorherigen finden bzw. EOF liefern.

Nach EOF funktioniert auch ein Read/Readp, da der Zeiger nun mal "vor" dem 1. bzw. "hinter" dem letzten Satz steht.

Nicht anders klappt ja auch ein SETGT/READPE.