PUTDDREC: Scrittura di una stringa di caratteri come record in un file sequenziale

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.


Inizio pagina

x
Sintassi: Come scrivere una stringa di caratteri come record in un file sequenziale
PUTDDREC(ddname, dd_len, record_string, record_len, output) 

dove:

ddname

Alfanumerico

Nome logico assegnato al file sequenziale in un comando FILEDEF.

dd_len

Numerico

Numero di caratteri contenuti nel nome logico.

record_string

Alfanumerico

Stringa di caratteri da aggiungere come nuovo record nel file sequenziale.

record_len

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.

emissione

Valore intero

Codice di ritorno che può avere uno dei seguenti valori:

0 - Record aggiunto.
-1- L'istruzione FILEDEF non è stata trovata.
-2 - Errore durante l'apertura del file.
-3 - Errore durante l'aggiunta del record al file.



Esempio: Chiamata a PUTDDREC in una richiesta TABLE

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


Esempio: Chiamata di PUTDDREC e CLSDDREC in Dialogue Manager -Comandi SET

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