0

I am studying COBOL based on a handout. At the end of learning, I copied this code into a file called testerel01.cob. Then I installed gnucobol 3.1.2 by compiling from source. When compiling, several errors appeared. I fixed most of them, but this one I couldn't fix.

testerel01.cob:78: error: invalid key item

The code is as follows:

        PROCEDURE DIVISION.
        INICIAL.
           OPEN INPUT CLIENTES
           IF NOT VALID-CLIENTES
            DISPLAY MESSAGE BOX 
              "O ARQUIVO DE CLIENTES NÃO FOI ABERTO !!" H"0A" 
              "CODIGO DE STATUS: " STAT-CLIENTES
             GOBACK
           END-IF.
           
           OPEN OUTPUT IMPRESSORA
           IF NOT VALID-IMPRESSORA
              DISPLAY MESSAGE BOX "IMPOSSIVEL ABRIR IMPRESSORA !" H"0A" 
              "CODIGO DE STATUS: " STAT-IMPRESSORA
              GOBACK
           END-IF.
           MOVE LOW-VALUES TO CLI-NOME.
           START CLIENTES KEY IS > CLI-NOME 
           IF NOT VALID-CLIENTES
             DISPLAY MESSAGE BOX
             "IMPOSSIVEL LOCALIZAR CLIENTES !!" H"0A"
             "CODIGO DE STATUS: " STAT-CLIENTES
             EXIT PARAGRAPH
           END-IF
           END-START
      *******************************************************************
      ** VAMOS FAZER UM LOOP PARA LER NOSSO ARQUIVO DE CLIENTES ATE O
      ** FINAL E FAZER A IMPRESSÃO, NO FINAL MANDAMOS IMPRIMIR O RODAPE 
      ** COM A TOTALIZAÇÃO DOS REGISTROS
      *******************************************************************
           PERFORM UNTIL 1 <> 1
              READ CLIENTES NEXT AT END
                PERFORM RODAPE1
                EXIT PERFORM
              END-READ
      *******************************************************************
      ** ALIMENTAREMOS OS DADOS DO RELATORIO COM AS INFORMAÇÕES DO NOSSO
      ** CADASTRO QUE SERÃO IMPRESSAS
      *******************************************************************
              MOVE CLI-CODIGO TO LDT-CODIGO
              MOVE CLI-NOME   TO LDT-NOME
              MOVE CLI-CIDADE TO LDT-CIDADE
              MOVE CLI-UF     TO LDT-UF
      *******************************************************************
      ** A VARIAVEL LINHAS NOS PERMITE FAZER A QUEBRA DE PAGINA PERCEBA
      ** QUE INICIOU VALENDO 80, DESSA FORMA FORÇA A IMPRESSAO DO 
      ** CABECALHO DA PRIMEIRA PAGINA
      *******************************************************************
              IF LINHAS > 61
                 PERFORM CABECALHO
              END-IF
              ADD 1 TO LINHAS, CONTADOR
              WRITE RG-IMPRESSORA FROM LDT AFTER 1
           END-PERFORM.

Line 78, where the error is occurring, is:

       START CLIENTES KEY IS > CLI-NOME
Adrian Mole
  • 49,934
  • 160
  • 51
  • 83
  • 7
    The compiler wants to tell you that this isn't a defined key in the `SELECT` clause. When posting COBOL fileio questions it is often useful to also post the ``SELECT` and the `FD` the question item relates to - guess it is the same for this case. – Simon Sobisch Jan 27 '22 at 20:24

1 Answers1

0

As @Simon Sobisch suggested the compiler wants to tell you that this isn't a defined key in the SELECT clause.