Note that there are some explanatory texts on larger screens.

plurals
  1. POImplicit Close of file
    primarykey
    data
    text
    <p>I have written the following COBOL program: </p> <pre><code>************************************************************* * VERKOOP ************************************************************* IDENTIFICATION DIVISION. PROGRAM-ID. VERKOOP. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT PRODUCTEN ASSIGN TO "BESTANDEN/PRODUCTEN" ACCESS MODE IS RANDOM ORGANIZATION IS INDEXED RECORD KEY IS PRODUCTID FILE STATUS IS WS-FILE-STATUS. DATA DIVISION. FILE SECTION. FD PRODUCTEN BLOCK CONTAINS 10 RECORDS. 01 PRODUCT. 02 PRODUCTID PIC X(6). 02 LEVERANCIERID PIC X(6). 02 AANTAL PIC 9(6). WORKING-STORAGE SECTION. 77 FOUT PIC X. 88 PRODUCT-NIET-GEVONDEN VALUE 1. 77 WS-PRODUCTID PIC X(6). 77 WS-AANTAL PIC 9(6). 77 WS-FILE-STATUS PIC XX. LINKAGE SECTION. 01 LS-PRODUCTID PIC X(6). 01 LS-AANTAL PIC 9(6). PROCEDURE DIVISION. * USING LS-PRODUCTID, LS-AANTAL. MAIN. PERFORM INITIALISEER PERFORM LEES-PRODUCT-IN PERFORM LEES-BESTAND PERFORM SLUIT-BESTAND STOP RUN. INITIALISEER. MOVE ZEROS TO PRODUCT OPEN I-O PRODUCTEN. * DISPLAY WS-FILE-STATUS.. LEES-PRODUCT-IN. * MOVE LS-PRODUCTID TO WS-PRODUCTID * MOVE LS-AANTAL TO WS-AANTAL. DISPLAY "GEEF PRODUCTID OP: " ACCEPT WS-PRODUCTID DISPLAY "GEEF AANTAL OP: " ACCEPT WS-AANTAL. LEES-BESTAND. * DISPLAY "LEES-BESTAND" MOVE WS-PRODUCTID TO PRODUCTID * DISPLAY PRODUCTID READ PRODUCTEN INVALID KEY SET PRODUCT-NIET-GEVONDEN TO TRUE END-READ DISPLAY "END-READ" WS-FILE-STATUS IF PRODUCT-NIET-GEVONDEN PERFORM FOUTJE ELSE MOVE WS-PRODUCTID TO PRODUCTID SUBTRACT WS-AANTAL FROM AANTAL PERFORM UPDATE-PRODUCT END-IF. UPDATE-PRODUCT. REWRITE PRODUCT INVALID KEY PERFORM FOUTJE. SLUIT-BESTAND. * DISPLAY "SLUIT-BESTAND" CLOSE PRODUCTEN. FOUTJE. DISPLAY "ER IS EEN FOUT OPGETREDEN" * DISPLAY WS-FILE-STATUS STOP RUN. </code></pre> <p>The idea is that I find a product by its productid in the file PRODUCTEN.dat and subtract the amount (aantal) by a given number. However everytime I run it I get the following error: WARNING - Implicit CLOSE of PRODUCTEN &lt;"BESTANDEN/PRODUCTEN">. I don't really see the problem, the WS-FILE-STATUS line even gives me back a 00 status. I am 100% sure the product is in the file so I'm not trying to subtract from a non-existing product or anything.</p> <p>UPDATE: I fixed it by assign PRODUCTEN to a newly declared file as the last one (somehow) got corrupt and was behaving in an unintended way.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload