Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

START not allowed with ACCESS MODE RANDOM

Ao compilar o programa CLIENTES.COB recebi a mensagem acima como erro. Segue abaixo as seções do código relacionados ao relatório para análise:

  ******************************************************************
   ENVIRONMENT DIVISION.

   INPUT-OUTPUT SECTION.
   FILE-CONTROL.
       SELECT CLIENTES ASSIGN TO
          'E:\FILES\DRIVE\CLIENTES.DAT'
       ORGANIZATION IS INDEXED
       ACCESS MODE IS RANDOM
       FILE STATUS IS CLIENTES-STATUS
       RECORD KEY IS  CLIENTES-CHAVE.
  ******************************************************************
   DATA DIVISION.
  *-----------------------------------------------------------------
   FILE SECTION.
   FD CLIENTES.
   01 CLIENTES-REG.
       05 CLIENTES-CHAVE.
           10 CLIENTES-FONE PIC 9(09).
       05 CLIENTES-NOME     PIC X(30).
       05 CLIENTES-EMAIL    PIC X(40).

  *-----------------------------------------------------------------
   5100-RELATORIO-TELA.
   MOVE 'MODULO - RELATORIO'  TO WRK-MODULO.
   ACCEPT CHAVE.
   DISPLAY TELA.
   START CLIENTES KEY EQUAL CLIENTES-FONE.
   READ CLIENTES
       INVALID KEY
           MOVE 'NENHUM REGISTRO ENCONTRADO' TO WRK-MSGERRO
       NOT INVALID KEY
           DISPLAY '    RELATORIO DE CLIENTES '
           DISPLAY '------------------------------'
           PERFORM UNTIL CLIENTES-STATUS = 10
               ADD 1 TO WRK-QT-REGISTROS
               DISPLAY CLIENTES-FONE ' '
                       CLIENTES-NOME ' '
                       CLIENTES-EMAIL
               READ CLIENTES NEXT
               ADD 1 TO WRK-CONTA-LINHA
               IF WRK-CONTA-LINHA = 5
                   MOVE 'PRESSIONE ALGUMA TECLA' TO WRK-MSGERRO
                   MOVE 'MODULO - RELATORIO'  TO WRK-MODULO
                   DISPLAY TELA
                   DISPLAY '    RELATORIO DE CLIENTES '
                   DISPLAY '------------------------------'
                   MOVE 0 TO WRK-CONTA-LINHA
               END-IF
           END-PERFORM
   END-READ.
   MOVE 'REGISTROS LIDOS ' TO WRK-MSGERRO.
   MOVE WRK-QT-REGISTROS TO WRK-MSGERRO(17:05).
   ACCEPT MOSTRA-ERRO.
1 resposta
solução!

Caso mais alguém tenha tido o mesmo problema, consegui resolver da seguinte forma.

Troquei ACCESS MODE de RANDOM para DYNAMIC e para posicionar no primeiro registro alterei o código conforme abaixo:

         MOVE 000000001 TO CLIENTES-FONE.
         START CLIENTES KEY IS >= CLIENTES-FONE.

Com essas alterações o programa executou sem erro.