Come: |
La funzione PUTDDREC scrive una stringa di caratteri come record in un file sequenziale. Il file deve essere identificato con un comando FILEDEF (DYNAM on z/OS). Se il file viene definito come file esistente (con l'opzione APPEND), il nuovo record viene accodato. Se il file viene definito come NEW ed è già esistente, il nuovo record sovrascrive il file esistente.
Per informazioni sul comando FILEDEF, consultare il Sviluppo applicazioni di reporting manuale .
PUTDDREC apre il file se non è già aperto. Ciascuna chiamata a PUTDDREC è in grado di usare lo stesso file o uno nuovo. Tutti i file aperti da PUTDDREC rimangono aperti fino alla fine di uan richiesta o sessione. Alla fine della richiesta o sessione, tutti i file aperti da PUTDDREC sono automaticamente chiusi.
Se PUTDDREC viene chiamato in un comando -SET di Dialogue Manager, i file aprti da PUTDDREC non sono chiusi automaticamente fino alla fine di una richiesta o connessionesessione. In questo caso, è possibile chiudere i file e liberare la memoria usata per memorizzate informazioni sul file aperto, chiamando la funzione CLSDDREC.
PUTDDREC(ddname, dd_len, record_string, record_len, output)
dove:
Alfanumerico
Nome logico assegnato al file sequenziale in un comando FILEDEF.
Numerico
Numero di caratteri contenuti nel nome logico.
Alfanumerico
Stringa di caratteri da aggiungere come nuovo record nel file sequenziale.
Numerico
Numero di caratteri da aggiungere al nuovo record.
Non è in grado di essere superiore al numero di caratteri in record_string. Per scrivere tutti i record_string al file, record_len dovrebbe essere uguale al numero di caratteri in record_string e non dovrebbe eccedere la lunghezza record dichiarata nel comando FILEDEF. Se record_len risulta inferiore alla lunghezza dichiarata, il file risultante pitrebbe contenere caratteri estranei alla fine di ciascun record. Se record_string risulta superiore alla lunghezza dichiarata, record_string potrebbe essere troncato nel file risultante.
Valore intero
Codice di ritorno che può avere uno dei seguenti valori:
Il seguente esempio definisce un nuovo file con nome logico PUTDD1. La richiesta TABLE quindi chiama PUTDDREC per ciascun dipendente nell'origine dati EMPLOYEE e scrive un record al file composto del nome, cognome, ID, codice lavoro corrente e stipendio corrente del dipendente (convertito in alfanumerico usando la funzione EDIT). Il codice di ritorno di zero (in OUT1) indica che le chiamate a PUTDDREC sono state eseguite correttamente:
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
L'emissione è:
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
Dopo aver eseguito questa richiesta, il file sequenziale contiene il seguente record:
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
Il seguente esempio definisce un nuovo file con nome logico PUTDD1. Il primo comando -SET crea un record per aggiungere questo file. Il secondo comando -SET chiama PUTDDREC per aggiungere il record. L'ultimo comando -SET chiama CLSDDREC per chiudere il file. I codici di ritorno sono visualizzati per assicurare la correttezza delle operazioni:
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
L'emissione è:
DATA = SMITHMARYA0727000 PUT RESULT = 0 CLOSE RESULT = 0
Dopo aver eseguito questa procedura, il file sequenziale contiene il seguente record:
SMITHMARYA0727000
WebFOCUS |