View Full Version : F-bestimmungen in Prozedur
Klabautermann
17-08-09, 07:48
Hallo zusammen,
Wir haben am letzten Wochenende die umstellung auf V6R1 durchgeführt. Da man nun auch in Prozeduren F-bestimmungen einfügen kann habe ich es natürlich direkt mal ausprobiert. Allerdings bekomme ich beim Kompilieren folgende Fehlermeldung:
RNF7274 30 1 Eine Ergebnisdatenstruktur ist für die Ein-/Ausgabe für eine qualifizierte Datei erforderlich
Der Code sieht folgendermaßen aus:
P §Test B
FTESTDAT01 UF A E K DISK rename(TSTR:TESTR)
D §Test PI
d K$TESTDAT01 E DS extname(TESTDAT01:*key)
d Prefix(K$)
d
/FREE
// Chain(E) %Kds(K$TESTDAT01) TESTDAT01;
FLD = 'HALLO';
Update(E) TESTR;
/END-FREE
P §Test E Ich hoffe Ihr könnt mir helfen.
... eine lokal deklariertes File kann man schlecht in einen globalen Format Buffer einlesen => der chain will eine passende Datenstruktur als weiteren Parameter haben...
D*B
der wieder mal nicht versteht wofür sowas gut sein soll, außer zum ausprobieren
Hallo zusammen,
Wir haben am letzten Wochenende die umstellung auf V6R1 durchgeführt. Da man nun auch in Prozeduren F-bestimmungen einfügen kann habe ich es natürlich direkt mal ausprobiert. Allerdings bekomme ich beim Kompilieren folgende Fehlermeldung:
RNF7274 30 1 Eine Ergebnisdatenstruktur ist für die Ein-/Ausgabe für eine qualifizierte Datei erforderlich
Der Code sieht folgendermaßen aus:
P §Test B
FTESTDAT01 UF A E K DISK rename(TSTR:TESTR)
D §Test PI
d K$TESTDAT01 E DS extname(TESTDAT01:*key)
d Prefix(K$)
d
/FREE
// Chain(E) %Kds(K$TESTDAT01) TESTDAT01;
FLD = 'HALLO';
Update(E) TESTR;
/END-FREE
P §Test E Ich hoffe Ihr könnt mir helfen.
Hallo,
wie Dieter sagt, man muss eine entsprechende Ein/Ausgabe-Datenstruktur definieren
P §Test B
FTESTDAT01 UF A E K DISK rename(TSTR:TESTR)
D §Test PI
d K$TESTDAT01 E DS extname(TESTDAT01:*key)
d Prefix(K$)
d DSTESTDAT01 E DS extname(TESTDAT01)
d
/FREE
Chain(E) %Kds(K$TESTDAT01) TESTDAT01 DSTestDat01;
FLD = 'HALLO';
Update(E) TESTR DSTestDat01;
/END-FREE
P §Test E
der wieder mal nicht versteht wofür sowas gut sein soll, außer zum ausprobieren
... also für einzelne Chain oder SetLLs, finde ich das schon ganz brauchbar, wenn man dafür kein embedded SQL verwenden will. (Chain und SetLL sind halt immer noch um einiges schneller als SQL - das gibt sogar IBM hinter vorgehaltener Hand zu).
Birgitta
Klabautermann
17-08-09, 08:36
Hallo,
ich habe das mal ausprobiert. Allerdings bekomme ich nun folgende Fehlermeldungen:
Chain(E) %Kds(K$TESTDAT01) TESTDAT01 DSTestDat01;
RNF7595: Die Ergebnisdatenstruktur DSTESTDAT01 enthält kein Unterfeld in Stelle 1 für Satzformat TESTR.Da die Datenstruktur DSTESTDAT01 aber extern wie TESTDAT01 beschreiben wird sollte diese doch ein Feld haben oder etwa nicht [?]??
und beim Update:
Update(E) TESTR DSTestDat01;
RNF7701: Datenstruktur DSTESTDAT01 ist für die Operation nicht zulässig.
Bei der Definition der Datenstruktur habe ich wohl das Schlüsselwort Qualified unterschlagen. ... Oder aber die Datenstruktur mit LikeRec.
(Das kommt davon, wenn man irgendwas eintippt ohne es ausprobiert zu haben.)
Birgitta
Klabautermann
18-08-09, 06:57
Guten Morgen,
Auch mit qualified funktioniert es nicht. :(
Es sind die gelcihen Fehlermeldungen.