Como: |
A função PUTDDREC grava uma string de caracteres como registro em um arquivo sequencial. O arquivo deve ser identificado como um comando FILEDEF (DYNAM no z/OS). Se o arquivo estiver definido como um arquivo existente (com a opção APPEND), o novo registro será anexado. Se o arquivo estiver definido como NEW e já existir, o novo registro substitui o arquivo existente.
Para obter informações sobre o comando FILEDEF, consulte o manual Como Desenvolver Aplicativos de Relatório .
PUTDDREC abre o arquivo caso ainda não esteja aberto. Cada chamada pelo PUTDDREC pode utilizar o mesmo arquivo ou um novo. Todos os arquivos abertos pelo PUTDDREC permanecem abertos até o fim de uma solicitação ou de sessão. No fim da solicitação ou de sessão, todos os arquivos abertos por PUTDDREC são fechados automaticamente.
Se PUTDDREC for chamado no comando -SET do Dialogue Manager, os arquivos abertos por PUTDDREC não serão fechados automaticamente até o fim de uma solicitação ou de sessão. Neste caso, você pode fechar os arquivos e liberar a memória utilizada para armazenar informações sobre o arquivo aberto chamando a função CLSDDREC.
PUTDDREC(ddname, dd_len, record_string, record_len, output)
onde:
Alfanumérico
É o nome lógico atribuído ao arquivo sequencial em um comando FILEDEF .
Numérico
É o número de caracteres no nome lógico.
Alfanumérico
É a string de caracteres a ser adicionada como novo registro no arquivo sequencial.
Numérico
É o número de caracteres a adicionar como novo registro.
Não pode ser maior do que o número de caracteres em record_string. Para gravar record_string em sua totalidade no arquivo, record_len deve ser igual ao número de caracteres em record_string e não deve exceder o comprimento do registro declarado no comando FILEDEF . Se record_len for menor que o comprimento declarado, o arquivo resultante poderá conter caracteres extra ao final de cada registro. Se record_string não for mais longo que o comprimento declarado, record_string poderá ser truncado no resultado final.
Inteiro
É o código de retorno, que pode possuir um dos seguintes valores:
O exemplo a seguir define um novo arquivo com nome lógico PUTDD1. A solicitação TABLE, em seguida, chama PUTDDREC para cada funcionário na fonte de dados EMPLOYEE e grava um registro no arquivo composto do sobrenome, nome, ID, código de posição atual e salário atual (convertido em alfanumérico pela função EDIT) do funcionário. O código de retorno de zero (em OUT1) indica que as chamadas para PUTDDREC foram feitas com sucesso:
FILEDEF PUTDD1 DISK putdd1.datTABLE FILE EMPLOYEE
PRINT EMP_ID CURR_JOBCODE AS 'JOB' CURR_SAL
COMPUTE SALA/A12 = EDIT(CURR_SAL); NOPRINT
COMPUTE EMP1/A50= LAST_NAME|FIRST_NAME|EMP_ID|CURR_JOBCODE|SALA;
NOPRINT
COMPUTE OUT1/I1 = PUTDDREC('PUTDD1',6, EMP1, 50, OUT1);
BY LAST_NAME BY FIRST_NAME
END
A saída é:
LAST_NAME FIRST_NAME EMP_ID JOB CURR_SAL OUT1 --------- ---------- --------- --- -------- ---- BANNING JOHN 119329144 A17 $29,700.00 0 BLACKWOOD ROSEMARIE 326179357 B04 $21,780.00 0 CROSS BARBARA 818692173 A17 $27,062.00 0 GREENSPAN MARY 543729165 A07 $9,000.00 0 IRVING JOAN 123764317 A15 $26,862.00 0 JONES DIANE 117593129 B03 $18,480.00 0 MCCOY JOHN 219984371 B02 $18,480.00 0 MCKNIGHT ROGER 451123478 B02 $16,100.00 0 ROMANS ANTHONY 126724188 B04 $21,120.00 0 SMITH MARY 112847612 B14 $13,200.00 0 RICHARD 119265415 A01 $9,500.00 0 STEVENS ALFRED 071382660 A07 $11,000.00 0
Após a execução desta solicitação, o arquivo sequencial contém os seguintes registros:
BANNING JOHN 119329144A17000000029700 BLACKWOOD ROSEMARIE 326179357B04000000021780 CROSS BARBARA 818692173A17000000027062 GREENSPAN MARY 543729165A07000000009000 IRVING JOAN 123764317A15000000026862 JONES DIANE 117593129B03000000018480 MCCOY JOHN 219984371B02000000018480 MCKNIGHT ROGER 451123478B02000000016100 ROMANS ANTHONY 126724188B04000000021120 SMITH MARY 112847612B14000000013200 SMITH RICHARD 119265415A01000000009500 STEVENS ALFRED 071382660A07000000011000
O exemplo a seguir define um novo arquivo com nome lógico PUTDD1. O primeiro comando -SET cria um registro para se adicionar a este arquivo. O segundo comando -SET chama PUTDDREC para adicionar o registro. O último comando -SET chama CLSDDREC para fechar o arquivo. Códigos de retorno são exibidos para garantir o sucesso das operações:
FILEDEF PUTDD1 DISK putdd1.dat -SET &EMP1 = 'SMITH'|'MARY'|'A07'|'27000';
-TYPE DATA = &EMP1
-SET &OUT1 = PUTDDREC('PUTDD1',6, &EMP1, 17, 'I1');
-TYPE PUT RESULT = &OUT1
-SET &OUT1 = CLSDDREC('I1');
-TYPE CLOSE RESULT = &OUT1
A saída é:
DATA = SMITHMARYA0727000 PUT RESULT = 0 CLOSE RESULT = 0
Após a execução deste procedimento, o arquivo sequencial contém o seguinte registro:
SMITHMARYA0727000
Information Builders |