PDA

View Full Version : EXTFILE in RPG



lorenzen
26-08-02, 08:49
Die Definition einer variablen Datei verlangt laut Handbuch 5.1 eine feste Satzlänge. Damit kann aber nicht eine Definition für mehrere verschiedene Dateien zur Laufzeit erfolgen.
Genau das möchte ich aber.

fVarfile if f 55 disk extfileFilename)

Weiß jemand Rat??

Fuerchau
26-08-02, 10:33
In RPG ist eine Variable Satzlänge für eine Datei leider nicht möglich.
Da Satzformat und Felddefinition in RPG konstant sind, kann man dies leider nicht dynamisieren.

Begründung:

Beim Open einer Datei wird intern ein Satzpuffer in der Länge der Datei angelegt.
Das definierte Feld des Satzformates liegt NICHT in diesem Puffer.
Bei einer WRITE-Anweisung überträgt RPG das Feld in den Satzpuffer, was dann zu einem internen Feldüberlauf führt. Günstigenfalls wird das programm mit einem MCH-Fehler beendet.
Bei einer READ-Anweisung liest RPG mit dem Namen des Satzformates. Da ggf. der Name nicht bei jeder Datei identisch ist, führt der READ zu einem RPG-Laufzeitfehler, daß das Satzformat nicht gefunden wurde.

Lösung:

1. Dynamisches SQL mit Descriptor !
2. COBOL-Programm

lorenzen
26-08-02, 10:46
Vielen Dank für die Erklärung. Da wir diese Funktion im Trigger einsetzen wollen nehmen wir kein SQL, da wir damit schlechte Performance-Erfahrung gemacht haben und definieren die Dateien wie gehabt.