PDA

View Full Version : Status 0P beim Öffnen einer Datei



puddschini
27-02-08, 07:44
Hallo,
ich formuliere meine Anfrage von gestern neu:
In einem cobol-Programm möchte ich Dateien verarbeiten, deren Beschreibung mit SQL angelegt wurden und nicht im Pgm stehen, nur als Copy-anweisung.
Die datei enthält viele nullable-fields, an denen der Compile scheitert. In der IBM-Literatur gibt es zahlreiche Hinweise/Bsp. dazu, aber nur für Satzbeschreibungen, die im Programm stehen und nicht als copy eingezogen werden. Hier ist auch eine definitionen einer null-map angegeben. Der Pararmeter -ALWNULL wird ignoriert. Alle diese dinge funktionieren bei mir nicht. Was muß ich also tun, damit ich ein lauffähiges Pgm hinbekomme?
Wesentliche Auszüge habe ich beigefügt, ich hoffe, sie sind lesbar.

INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT VERTRAG1 ASSIGN TO DATABASE-VERTRAG-ALWNULL
ORGANIZATION IS SEQUENTIAL
ACCESS IS SEQUENTIAL
FILE STATUS IS VRT-STAT.
DATA DIVISION.
FILE SECTION.
FD VERTRAG1 LABEL RECORDS ARE STANDARD.
01 VRT-SATZ.
COPY DDS-VERTRAG01 OF VERTRAG.
WORKING-STORAGE SECTION.
.
01 VERTRAG-NM.
COPY DDS-ALL-FORMATS OF VERTRAG WITH NULL-MAP.
05 GRUSSDAT-NF PIC 1 VALUE B"0".



Fehlermeldungen

* 561 ID: LBL0032 BEW.STUFE 10 FOLGENR 003400
Nachricht . . . : Anweisung COPY DDS für Feld 'MAZAHLDAT', für
das Nullwerte zulässig sind, ausgeführt. Akzeptiert.
* 561 ID: LBL0032 BEW.STUFE 10 FOLGENR 003400
Nachricht . . . : Anweisung COPY DDS für Feld 'MAERLDAT', für
das Nullwerte zulässig sind, ausgeführt. Akzeptiert.
* 561 ID: LBL0021 BEW.STUFE 10 FOLGENR 003400
Nachricht . . . : Anweisung COPY endet nicht mit einem Punkt.
Punkt angenommen.
* 1092 ID: LBL1030 BEW.STUFE 30 FOLGENR 003400
Nachricht . . . : 'WITH' ungültig. Erneuter Start beim
nächsten reservierten Wort in Bereich A oder am Anfang der
Klausel.
* 1092 ID: LBL0018 BEW.STUFE 00 FOLGENR 003400
Nachricht . . . : Eingabe ab 'WITH' ignoriert.


Auch hier Danke im voraus.
puddschini

BenderD
27-02-08, 08:31
ich habe zwar mal COBOL auf /3x gelernt und auf Mainframe programmiert, aber da habe ich mit Nullmap nix gemacht. Aber der COBOl Programmers Guide, der hat da wohl auch ein Beispiel.
http://publib.boulder.ibm.com/infocenter/iseries/v5r4/index.jsp


D*B

Fuerchau
27-02-08, 08:42
Ich denke mal, dadurch dass der Punkt am Ende der COPY-Anweisung fehlt, wird WITH nicht mehr als dazugehörig angenommen.
Setze also erst mal den Punkt an die richtige Stelle.

Bedenke auch, dass du bei allen READ/WRITE-Anweisungen "... WITH NULL-MAP IS Name ..." angeben musst.

Besser wäre eine Verarbeitung der Daten mit SQL. Da stellen sich diese Probleme nicht.

puddschini
27-02-08, 10:01
Hallo,
wenn ich den Code richtig lese, steht am Ende der "Copy"-Anweisung ein Punkt. Bei beiden Copy-Anweisungen. Deutlich lesbar. Welcher Punkt ist nun gemeint und wo s0ollte der definiert werden?
Ich wünschte, der Compile würde funktionieren. Gestern hatte ich jedenfalls den Zustand "0P" -wg. nullable-fields- bereits erreicht.
Gruß
puddschini

BenderD
27-02-08, 10:19
vielleicht hilft das ja weiter:
COBOL Null Values (http://www.myvideo.de/watch/147826)



Ich wünschte, der Compile würde funktionieren.

puddschini
27-02-08, 10:27
wo gebe ich das ein? Bei Punkt14 beim compile muß ich schon extra varchar und datetime eingeben, wo kommt dann null-values hin?

Fuerchau
27-02-08, 11:25
Da würde ich mich jetzt mal fragen, welches Release du denn da einsetzt.

Laut Handbuch wird NULL-MAP und ALWNULL schon ab V4R2 unterstützt.

Da die COPY-Anweisung das WITH nicht akzeptiert, gehe ich mal von einem früheren Release aus.

Dann musst du wohl (was auch besser wäre) embedded SQL nutzen.

puddschini
27-02-08, 12:07
V5R3, erfahre ich hier beim Kunden, ist im Einsatz.

Fuerchau
27-02-08, 13:23
Ändere die Teildateiart von CBL auf CBLLE !

Der "alte" Cobol-Compiler unterstützt das nicht.
Wenn du die SEU-Syntaxhilfe eingeschaltet hättest würde dieser den Fehler schon zeigen.

puddschini
27-02-08, 16:42
Lieber Kollege,
das war ein volltreffer, Deine letzte Nachricht.
Wobei ein Kollege hier anfangs die einstellung von CBLLE auf CBL geändert , um die Fehlermeldungen bzgl. varchar-Fehldern zu umgehen. einen Fehler beseitigt, einen anderen dafür eingehandelt. Nun haben wir alles wieder gedreht, der compile funktioniert und das Pgm läuft auch.
Ganz herzlichen Dank für Deine(Eure) Hilfe.

puddschini