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
- Programming IBM Rational Development Studio for i ILE C/C++ Language Reference 7.5, Manuale IBM SC09-7852-04
- Programming CL overview and concepts 7.5, Manuale IBM
- Programming IBM Rational Development Studio for i ILE RPG Reference 7.5, Manuale IBM
- Database Embedded SQL programming 7.5, Manuale IBM
- Database Db2 for i SQL Reference 7.5, Manuale IBM