Cómo: |
La función PUTDDREC escribe una cadena de caracteres como registro en un archivo secuencial. El archivo debe estar identificado con un comando FILEDEF (DYNAM, en z/OS). Si el archivo está definido como existente (con la opción APPEND), el registro nuevo queda anexado. Si el archivo está definido como NEW y ya existe, el registro nuevo sobrescribe el archivo existente.
Para más información sobre el comando FILEDEF, consulte el manual Cómo desarrollar aplicaciones de informes .
Si el archivo no está abierto, PUTDDREC lo abre. Puede usar el mismo archivo, o uno nuevo, con cada llamada a PUTDDREC. Todos los archivos abiertos por PUTDDREC permanecen en este estado hasta que termine la solicitud o conexión. Cuando termine la solicitud o conexión, todos los archivos abiertos por PUTDDREC se cerrarán automáticamente.
Para más información sobre el cierre de los archivos abiertos por PUTDDREC, para liberar la memoria utilizada, consulte CLSDDREC: Cómo cerrar todos los archivos abiertos por la función PUTDDREC.
Si se llama PUTDDREC desde un comando -SET, en Dialogue Manager, los archivos abiertos por PUTDDREC no se cerrarán automáticamente hasta que finalice una solicitud o conexión. En este caso, puede cerrar los archivos y liberar la memoria usada para almacenar la información de un archivo abierto, llamando a una función CLSDDREC.
PUTDDREC(ddname, dd_len, record_string, record_len, output)
donde:
Alfanumérico
Es el nombre lógico asignado al archivo secuencial, en un comando FILEDEF.
Numérico
Es el número de caracteres del nombre lógico.
Alfanumérico
Es la cadena de caracteres que se va a añadir como registro nuevo, en el archivo secuencial.
Numérico
Es el número de caracteres que se va a añadir como registro nuevo.
No puede ser superior al número de caracteres en record_string. Para escribir la totalidad de record_string en el archivo, record_len debe ser igual al número de caracteres en record_string y no debe superar la longitud del registro declarada en el comando FILEDEF. Si record_len es inferior a la longitud declarada, puede que el archivo resultante contenga caracteres superfluos al final de cada registro. Si record_string supera la longitud declarada, record_string puede quedar truncado en el archivo resultante.
Número entero
Es el código de devolución, que puede tener uno de los siguientes valores:
El siguiente ejemple define un archivo nuevo cuyo nombre lógico es PUTDD1. A continuación, la solicitud de TABLE llama a PUTDDREC por cada empleado en el origen de datos EMPLOYEE, y escribe un registro compuesto por su apellido, nombre, id., código de puesto y salario actuales (convertidos en caracteres alfanuméricos por la función EDIT), en el archivo. El código de retorno cero (en OUT1) indica que las llamadas a PUTDDREC se han realizado correctamente:
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
La salida es:
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
Después de ejecutar esta solicitud, el archivo secuencial presenta los siguientes 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
El siguiente ejemple define un archivo nuevo cuyo nombre lógico es PUTDD1. El primer comando -SET crea un registro que se va a añadir al archivo. El segundo comando -SET llama a PUTDDREC para que añada el registro. El último comando -SET llama a CLSDDREC para que cierre el archivo. Los códigos de devolución aparecen mostrados para verificar que las operaciones han sido realizadas correctamente:
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
La salida es:
DATA = SMITHMARYA0727000 PUT RESULT = 0 CLOSE RESULT = 0
Después de ejecutar este procedimiento, el archivo secuencial presenta el siguiente registro:
SMITHMARYA0727000
WebFOCUS |