CICS - LEIA
O comando READ lê os dados de um arquivo usando a chave primária. A seguir está a sintaxe do comando READ -
Sintaxe
EXEC CICS READ
FILE('name')
INTO(data-area)
RIDFLD(data-area)
LENGTH(data-value)
KEYLENGTH(data-value)
END-EXEC.
A tabela a seguir lista os parâmetros usados no comando READ -
Sr. Não | Parâmetro e Descrição |
---|---|
1 | FILE Nome do arquivo é o nome do arquivo que desejamos ler. Este é o nome do arquivo simbólico CICS que identifica a entrada FCT para o arquivo. Os nomes dos arquivos podem ter até 8 caracteres e devem ser colocados entre aspas se forem literais. |
2 | INTO A área de dados é a variável na qual o registro deve ser lido, geralmente uma estrutura no armazenamento de trabalho. O INTO é necessário para o uso do comando READ. |
3 | RIDFLD Possui o nome da área de dados que contém a chave do registro que queremos ler. |
4 | LENGTH Ele especifica o número máximo de caracteres que podem ser lidos na área de dados especificada. Deve ser um valor binário de meia palavra (PIC S9 (4) COMP). Depois que o comando READ é concluído, o CICS substitui o valor máximo que especificamos pelo comprimento verdadeiro do registro. Por esse motivo, devemos especificar LENGTH como o nome de uma área de dados em vez de um literal e devemos reinicializar essa área de dados se a usarmos para LENGTH mais de uma vez no programa. Um registro mais longo gerará uma condição de erro. |
5 | KEYLENGTH Ele especifica o comprimento da chave. |
Exemplo
O exemplo a seguir mostra como ler um registro do arquivo 'FL001' onde Student-id é a chave primária -
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-STD-REC-LEN PIC S9(4) COMP.
01 WS-STD-KEY-LEN PIC S9(4) COMP.
01 WS-STD-REC-KEY PIC 9(3).
01 WS-STD-REC PIC X(70).
PROCEDURE DIVISION.
MOVE +70 TO WS-STD-REC-LEN.
MOVE ‘100’ TO WS-STD-REC-KEY.
MOVE 3 TO WS-STD-KEY-LEN.
EXEC CICS READ
FILE ('FL001')
INTO (WS-STD-REC)
LENGTH (WS-STD-REC-LEN)
RIDFLD (WS-STD-REC-KEY)
KEYLENGTH (WS-STD-KEY-LEN)
END-EXEC.
Leia as opções de comando
As seguintes opções podem ser usadas com o comando READ -
GENERIC- É usado quando não sabemos o valor-chave completo. Por exemplo, queremos um registro cuja chave primária comece com '10' e o resto da chave pode ser qualquer coisa. Embora o comprimento da chave seja de 3 caracteres, estamos mencionando apenas 2. É importante mencionar o comprimento da chave, que fornece o comprimento para o qual ela precisa fazer a correspondência. O primeiro registro que atender aos critérios será selecionado.
UPDATE- Especifica que pretendemos atualizar o registro na transação atual. Especificar UPDATE dá à sua transação o controle exclusivo do registro solicitado. Deve ser usado quando quisermos reescrever o registro.
EQUAL - Especifica que queremos apenas o registro cuja chave corresponda exatamente ao que é especificado por RIDFLD.
GTEQ - Especifica que queremos o primeiro registro cuja chave é maior ou igual à chave especificada.
EXEC CICS READ
FILE('name')
INTO(data-area)
RIDFLD(data-area)
LENGTH(data-value)
KEYLENGTH(data-value)
GENERIC
UPDATE
EQUAL
GTEQ
END-EXEC.
Ler exceções de comando
A tabela a seguir mostra a lista de exceções que surgem durante a instrução READ -
Sr. Não | Exceção e descrição |
---|---|
1 | NOTOPEN O arquivo não está aberto. |
2 | NOTFND O registro que está sendo pesquisado não existe no conjunto de dados. |
3 | FILENOTFOUND A entrada do arquivo não é feita na FCT. |
4 | LENGERR Incompatibilidade entre o comprimento especificado no comando e o comprimento real do registro. |
5 | NOTAUTH Se o usuário não tiver permissões suficientes para usar o arquivo. |
6 | DUPKEY Se mais de 1 registro satisfizer a condição da chave alternativa. |