Ultimo aggiornamento: 29-Dic-2023

Ce n’è di tutti i tipi

La scelta del tipo dati corretto è fondamentale per rappresentare le informazioni in un modello di dati.
Il primo pensiero quando si pensa ai tipi dati è la definizione delle tabelle del DB2.
Non di meno è importante conoscere molto bene anche i tipi dati disponibili nei vari linguaggi di programmazione maggiormente utilizzati su IBM i.
Per manipolare i dati in maniera non solo corretta ma anche efficiente dal punto di vista delle prestazioni è importante utilizzare lo stesso tipo di dati tra DB2 e variabili nei programmi o comunque conoscere bene similitudini e differenze.
Il casting (ovvero la conversione anche implicita) tra un tipo dati ed un altro è una delle principali cause di corruzione del dato e/o di performance povere. O addirittura fonte di eccezioni nel programma dovuta a problemi di compatibilità o di overflow.
P.es. definendo una variabile zoned(3:0) con valore 800 e tentando di assegnare questa variabile ad un’altra di tipo integer(3:0) si otterrà un errore di overflow, in quanto il valore massimo di una variabile integer(3:0) è +127.
Il poster allegato vuole fornire una mappa sinottica di tutti i tipi dati disponibili nel DB2 (con oggetti definiti tramite SQL o DDS) e nei linguaggi di programmazione RPG IV, CLP, C.

Scarica il poster dei tipi dati (IBM i 7.3)

Scarica il poster dei tipi dati (IBM i 7.5)

E’ molto importante anche tenere in considerazione il risultato della definizione quando si referenziano i campi  nei display/printer files o nei programmi RPG.

Nel poster allegato sono evidenziate le differenze del campo definito in un display/printer file o in un programma rispetto alla definizione della tabella originale.

! Bisogna prestare molta attenzione soprattutto se si usano i tipi dati interi o il nuovo tipo dati boolean.

Scarica il poster delle definizioni per riferimento (IBM i 7.5)

Sorgenti di esempio: DATATYPE (tabella), REFFLDV (display file), REFFLDP (printer file), REFFLD (programma RPG)

Bibliografia