Utilità per il browser

Strumenti

Utilità per le operazioni ricorrenti su IBM i: conversione di date e formati numerici, lettura dei dati, generazione di comandi. Funzionano nel browser, senza installazione.

I calcoli avvengono sul dispositivo in uso. I dati inseriti non vengono trasmessi al server.

Convertitore di date IBM i

Scrivi una data in qualsiasi formato e ottienila in tutti gli altri, CYYMMDD e giuliano compresi.

12607272026-07-27

Perché esiste il formato CYYMMDD?

Un campo numerico da 7 cifre in cui la prima è il secolo: 0 per il 1900, 1 per il 2000. Nacque per far entrare una data in poco spazio e superare il cambio di millennio senza ambiguità, quando due sole cifre per l'anno non bastavano più. Costa un byte in più di YYMMDD e ne fa risparmiare uno rispetto a YYYYMMDD: un compromesso che si trova ancora dentro moltissimi file in produzione. Attenzione alle sei cifre: 260727 può essere sia YYMMDD sia il giuliano CYYDDD, e solo il tracciato del file può dirlo con certezza.

La pagina di questo strumento

Packed e zoned decimal

Come un numero viene scritto davvero sul disco, byte per byte, e quanto spazio occupa.

123.4512 34 5C

Come si leggono questi byte

Nello zoned decimal ogni cifra occupa un byte intero: il nibble alto vale F e quello basso contiene la cifra. Nel packed decimal ci stanno due cifre per byte, quindi occupa quasi la metà. In entrambi l'ultimo nibble porta il segno: C positivo, D negativo, F senza segno. Il punto decimale non viene mai memorizzato: sta solo nella definizione del campo. Serve quando si guarda un record in esadecimale con DSPPFM e F10, o per calcolare quanto peserà davvero un file prima di crearlo.

La pagina di questo strumento

Tracciato record

Da quale byte comincia ogni campo, quanto è lungo il record e quanto peserà il file.

A(10) P(5,2)pos. 1-10, 11-13

Un campo per riga: nome, tipo, lunghezza, decimali. I tipi sono A (alfanumerico), P (packed), S (zoned). Si accetta anche la scrittura del DDS, come CODCLI 7P 0.

La pagina di questo strumento

Da DDS a SQL

Incolla le specifiche DDS di un file fisico e ottieni la CREATE TABLE corrispondente.

A R CLIENTECREATE TABLE

Cosa copre e cosa no

Vengono lette le definizioni dei campi — nome, lunghezza, tipo, decimali — il formato record e i campi chiave. La corrispondenza dei tipi è: A in CHAR, P in DECIMAL, S in NUMERIC, L in DATE, T in TIME, Z in TIMESTAMP, B in SMALLINT, INTEGER o BIGINT a seconda della lunghezza. Un campo senza tipo esplicito è zoned se ha decimali e alfanumerico se non ne ha, come vuole il DDS. I commenti escono con --, e i campi che non si riescono a tradurre escono commentati per intero, così la CREATE TABLE resta eseguibile e la colonna da sistemare a mano rimane in vista. Due opzioni cambiano il risultato: NOT NULL su tutti i campi, e i nomi lunghi ricavati dalla descrizione — prima COLHDG, poi TEXT — con il nome DDS conservato come FOR COLUMN, che è il nome di sistema con cui i programmi RPG continuano a leggere il file. Restano fuori le parole chiave di validazione, i valori predefiniti e i campi definiti per riferimento, che vengono segnalati invece di essere indovinati: il risultato è un punto di partenza da rileggere, non da eseguire a occhi chiusi.

La pagina di questo strumento

Codici di edit RPG

Mostra come un numero viene stampato da ciascuno dei sedici codici di edit, con le tre proprietà che li distinguono.

-1234.561.234,56CR · -1.234,56

Con segno e decimali, come sta nel campo. Gli zeri iniziali vengono conservati: servono ai codici X e Z. Terzo parametro di %EDITC. Lasciare vuoto per nessun simbolo.

Come si legge la tabella

I sedici codici sono tutte le combinazioni di tre scelte: separatore delle migliaia sì o no, valore zero stampato o lasciato in bianco, segno del negativo assente, CR, meno in coda o meno davanti al numero. Gli zeri non significativi vengono sempre soppressi, ed è il motivo per cui 0,05 si stampa ,05. Sui valori positivi le posizioni del segno restano vuote: è voluto, ed è così che le colonne di una stampa restano allineate. I codici speciali fanno altro: X lascia le cifre come sono, Z toglie segno e zeri iniziali, Y inserisce le barre di una data — ma quale gruppo sia il giorno e quale il mese lo decide DATEDIT nel programma, non il codice.

La pagina di questo strumento

Manca uno strumento che useresti spesso? Segnalalo, volentieri.