Campo di database
copia linkUn campo di una tabella rappresenta un attributo, o proprietà, degli oggetti contenuti nella tabella. Può essere rappresentato con una delle seguenti icone:
Campo PK (chiave primaria della tabella) |
Campo obbligatorio |
Campo opzionale |
Campo con valore di default |
Campo FK (parte di foreign key) opzionale |
Campo FK obbligatorio |
Video corso Creazione oggetto tabella
Video corso Creazione oggetto campo
Proprietà
Nome: rappresenta il nome logico del campo, così come sarà riconosciuto all'interno del progetto Instant Developer. Il nome è un’espressione sintetica, da una a tre parole, e non dovrebbe contenere l’elemento della tabella, ad esempio il campo Nome della tabella Operatori si deve chiamare Nome e non Nome Operatore.
Descrizione: contiene una descrizione significativa del contenuto del campo. Il testo inserito verrà utilizzato per comporre la documentazione del database e per il manuale utente, quindi è importante spiegare bene lo scopo del campo in modo da facilitarne il corretto utilizzo.
Titolo: è il nome che verrà utilizzato all’interno dell’interfaccia dell’applicazione quando ci si deve riferire a questo campo. Normalmente viene lasciato vuoto ed, in questo caso, verrà usata la proprietà Nome.
Esempi di contenuto: questa proprietà contiene alcuni esempi del contenuto del campo, separati da punto e virgola. E’ consigliato inserire da tre a sette esempi che verranno utilizzati come documentazione dell’utilizzo del campo, per creare il database di test e per stimare la larghezza migliore per i campi a video. Se la struttura delle tabelle viene importata dal database allora gli esempi vengono letti campionando il contenuto della tabella.
Dominio/Lista valori: il campo può riferirsi ad un oggetto dominio, oppure ad una lista che ne elenca i possibili valori. Se premi il pulsante Aggiungi, verrà creata una nuova lista valori a partire dagli esempi di contenuto.
Tipo di dati: indica il tipo di dati contenuti dal campo. I possibili valori sono:
- Integer: il campo contiene un numero intero con un massimo di 10 cifre (a 32 bit).
- Float: il campo contiene un campo a virgola mobile a doppia precisione.
- Decimal: il campo contiene un campo a virgola fissa con precisione e scala a piacere. Può essere usato anche per memorizzare numeri interi con più di 10 cifre.
- Currency: il campo contiene un valore monetario con 19 cifre di precisione e 6 decimali.
- Character: il campo contiene una stringa di caratteri a lunghezza variabile, da 1 a 255 caratteri. Se si imposta una lunghezza maggiore verrà selezionato automaticamente il tipo Text.
- Character (lung. fissa): il campo contiene una stringa di caratteri a lunghezza fissa, da 1 a 255 caratteri. Si consiglia di NON di utilizzare questo tipo a meno che realmente i dati siano sempre della stessa lunghezza.
- Date Time, Date, Time: il campo memorizza una data e ora, cioè un istante nel tempo. Se viene utilizzato il tipo Date o Time nell'interfaccia verrà mostrata solo la parte del dato corrispondente.
- Text: il campo memorizza un documento di testo. Nel database verrà utilizzato un tipo varchar se la lunghezza massima impostata lo consente, altrimenti un campo di tipo CLOB.
- BLOB: il campo memorizza un file di qualunque genere.
Lunghezza massima: rappresenta la lunghezza massima del campo; il significato varia in base al tipo.
- Integer: massimo numero di cifre inseribili nel campo. Può variare da 1 a 10, tuttavia il valore assoluto massimo del campo è poco più di due miliardi (2.147.483.647).
- Float, Decimal: massimo numero di cifre inseribili nel campo, da 1 a 38. Rappresenta la precisione del valore del campo.
- Currency: massimo numero di cifre inseribili nel campo. Nel database verrà comunque utilizzato un tipo decimal con 19 cifre di precisione e 6 decimali.
- Character, Character (lung. fissa), Text: lunghezza massima del contenuto del campo.
- Date: solitamente impostato a 10, rappresenta la lunghezza della maschera di inserimento del campo (dd/mm/yyyy).
- Time: solitamente impostato a 5, rappresenta la lunghezza della maschera di inserimento del campo (hh:nn).
- Date Time: solitamente impostato a 16, rappresenta la lunghezza della maschera di inserimento del campo (dd/mm/yyyy hh:nn).
- BLOB: rappresenta solo un'indicazione della dimensione del contenuto del campo, utile per la stima delle dimensioni del database.
Cifre decimali: permette di specificare il numero di cifre decimali del campo, valido solo se il tipo è decimal. La maschera di inserimento a video potrebbe comunque mostrare un numero inferiore di decimali.
Chiave primaria: indica che il campo è parte della chiave primaria del database. Si consiglia fortemente di utilizzare solo numeri interi o campi di tipo carattere come chiavi primarie. Possibilmente la chiave primaria di una tabella dovrebbe essere composta da un unico campo. Se il campo è parte di una relazione (foreign key) allora questo attributo deve essere impostato nelle proprietà della foreign key stessa.
Opzionale: indica che il campo è opzionale, cioè può essere lasciato vuoto (null). I campi chiave primaria non possono essere opzionali. Se il campo è parte di una relazione (foreign key) allora questo attributo deve essere impostato nelle proprietà della foreign key stessa.
Valore predefinito: indica che il campo assume un valore predefinito (default) se non viene specificato nelle query di inserimento. Il valore predefinito è il primo della lista degli esempi. Se si desidera usare un’espressione come default, occorre aggiungere un oggetto dominio al campo ed aggiungere ad esso l'espressione del valore predefinito.
Contatore: se il campo è di tipo integer allora è possibile impostare il flag contatore per chiedere al database di valorizzarlo in automatico con un valore crescente. Solitamente viene utilizzato per la valorizzazione del campo chiave primaria; In.de contiene anche meccanismi più flessibili per creare chiave primarie artificiali. Non più di un campo per tabella può essere contatore; su alcuni tipi di database In.de dovrà creare oggetti di tipo sequence per la gestiore della valorizzazione del campo.
Stile visuale: indica con quale stile visuale dovrà essere rappresentato a video il contenuto del campo, se non specificato diversamente nelle proprietà dei campi dei pannelli. Lo stile visuale indica anche quale tipo di controllo dovrà essere utilizzato a video (edit-box, check-box, radio-button, combo-box…). Alcuni di questi tipi possono essere utilizzati solo se al campo è stata associata una lista valori.
Descrittivo: questo flag indica che il contenuto del campo è utile all’utente per identificare un record di questa tabella e viene utilizzato nella creazione delle interfacce di lookup e decodifica. Ad esempio, il campo Nome della tabella Città è un buon campo descrittivo. Anche se è possibile impostare il flag su più di un campo della tabella, è importante sceglierne solo uno, quello più rappresentativo, perchè in questo caso In.de potrà utilizzare più oggetti per il lookup e la decodifica; sarà comunque possibile scegliere le informazioni mostrate a video tramite eventi di codice o espressioni. Se non viene scelto nessun campo, In.de ne sceglierà uno automaticamente quando viene costruito il primo oggetto di lookup verso questa tabella.
Codice: rappresenta il nome fisico del campo all’interno del database. Se è attivo il check- box Automatico allora Instant Developer sceglierà un nome fisico adeguato e non dovrai preoccuparti che rimanga univoco. Nel caso di tabella importata non potrai modificare questa proprietà perché è il nome effettivo del campo nel database.
Automatico: indica che il codice del campo viene calcolato e reso univoco in base al nome logico dello stesso.
Trasformazione: per alcuni tipi di database (Oracle, SQL Server e DB2) è disponibile un sistema di conversione della semantica dei campi. Ad esempio se nel database è stata memorizzata una data in un campo di tipo intero, è possibile gestire in automatico tutte le conversioni necessarie. Ecco le conversioni disponibili:
- Togli spazi alla fine: da utilizzare quando un campo carattere a lunghezza variabile è stato memorizzato in un campo di database a lunghezza fissa.
- Parte di altro campo: da utilizzare quando all’interno di un campo carattere a lunghezza fissa sono state memorizzate più informazioni in punti fissi. Nella proprietà Formato/Campo è necessario scrivere il Codice (nome fisico) del campo contenitore e nella proprietà Offset il punto di partenza da cui partono le informazione da estrarre.
- Data in formato numerico: da utilizzare quando un campo data è stato memorizzato in un campo numerico. Nella proprietà Formato è possibile specificare YYMMDD oppure YYYYMMDD.
- Data in formato carattere: da utilizzare quando un campo data è stato memorizzato in un campo carattere. Nella proprietà Formato è possibile specificare YYMMDD oppure YYYYMMDD.
- Intero in formato carattere: da utilizzare quando un campo numerico intero è stato memorizzato all’interno di in un campo carattere in formato binario a due byte. Nella proprietà Formato/Campo è necessario scrivere il Codice (nome fisico) del campo contenitore e nella proprietà Offset il punto di partenza da cui partono le informazione da estrarre.
Formato/Campo indica il formato delle informazioni o il campo contenitore. Vedi le note precedenti per maggiori informazioni.
Offset indica il punto iniziare da cui estrarre le informazioni. Vedi le note precedenti per maggiori informazioni
Menu contestuale
Aggiungi attività: crea un nuovo oggetto attività collegato al campo. Serve come promemoria per modifiche future o per gestire il lavoro di gruppo.
Trova oggetti derivati: cerca tutti gli oggetti del progetto derivati dal campo, come variabili, campi di pannello, colonne nelle query, statement, formule, ecc. anche a più livelli di derivazione.
Trova dove usato (oggetto): cerca tutti i punti del progetto dove è stato direttamente riferito in qualunque modo questo campo.
Trova dove usato (contenuto): cerca tutti i punti del progetto dove è stato direttamente riferito in qualunque modo questo campo o uno degli oggetti in esso contenuti.
Vai a: se il campo è stato derivato da un altro campo, come in una relazione o in una tabella in memoria, questo comando permette di saltare al campo originale nell’albero degli oggetti.
Stacca da: per i campi di tabelle in memoria derivati da quelli del database, interrompe il legame e la sincronizzazione fra i due oggetti. Dopo aver usato questo comando è possibile modificare le proprietà del campo in memoria in modo indipendente da quella del database.
Puoi tirare un campo con il drag&drop su…
Campo: riordina il campo nella lista, oppure lo sposta in un’altra cartellina. Puoi anche spostare il campo fra una tabella ed un’altra ma questa operazione può avere un forte impatto applicativo. Se tiri un campo dal database al database in memoria, ottieni l’effetto di collegare il campo in memoria a quello del database: le modifiche fatte al campo del database verranno automaticamente propagate a quello in memoria.
copia il campo invece di spostarlo.
Tabella: se stai tirando su una tabella di database, sposta il campo nella tabella su cui stai tirando; questa operazione può avere un forte impatto applicativo. Se invece il campo è di database e la tabella è in memoria, verrà aggiunto alla tabella in memoria un nuovo campo che deriva da quello tirato.
crea una copia del campo all’interno della tabella su cui stai tirando.
Query: aggiunge il campo alla select list della query. Eventualmente aggiunge la tabella alla from list.
aggiunge una condizione di filtro alla query; in questo caso la tabella deve già essere presente nella from list.
Colonna in query: in caso di query di update, insert o insert/select, indica a quale campo della tabella in fase di modifica si riferisce l’espressione su cui stai tirando.
Indice: aggiunge il campo alla chiave dell’indice. E’ possibile farlo solo se la tabella non è importata.
Libreria: aggiunge alla libreria Database un dominio basato sulle impostazioni del campo e lo collega al campo stesso.
Applicazione/Videata/Classe: crea una variabile globale adatta a contenere il valore estratto da questo campo. Il campo e la variabile rimarranno sincronizzati: se modifichi il campo, la variabile verrà aggiornata automaticamente.
Pannello (nel form editor): aggiunge il campo al pannello, eventualmente modificando la master query per includere sia il campo tirato che la tabella a cui appartiene.
Procedura/funzione/evento: crea una variabile locale adatta a contenere il valore estratto da questo campo.
invece di una variabile locale, crea un parametro (non valido per gli eventi).
Blocco di codice: se il campo appartiene ad una tabella in memoria monoriga, inserisce uno statement di assegnamento. Altrimenti crea una variabile locale al blocco adatta a contenere il valore estratto da questo campo.
Statement: se il campo appartiene ad una tabella in memoria monoriga, imposta il lato sinistro dello statement di assegnamento.
Variabile: collega la variabile al campo tirato: le modifiche fatte al campo verranno automaticamente propagate alla variabile.
Report (nel report designer): aggiunge il campo al report, eventualmente modificando la master query per includere sia il campo tirato che la tabella a cui appartiene.
Sezione: se il campo tirato appartiene ad una tabella in memoria monoriga, aggiunge una box ed uno span per visualizzare il valore del campo.
Box di report: se il campo tirato appartiene ad una tabella in memoria monoriga, aggiunge uno span alla box per visualizzare il valore del campo.
Span di report: se il campo tirato appartiene ad una tabella in memoria monoriga, imposta l’espressione dello span per visualizzare il valore del campo.
Cartella: se la cartella è nella stessa tabella a cui appartiene il campo, allora esso verrà semplicemente spostato all’interno, altrimenti è come tirare il campo sull’oggetto che contiene la cartella.
Se la cartella è nella stessa tabella a cui appartiene il campo, allora esso verrà semplicemente spostato prima della cartella su cui stai tirando, allo stesso livello dell’albero.
Se la cartella è nella stessa tabella a cui appartiene il campo, allora ne verrà creata una copia all’interno della cartella.
Ultima modifica: 04/11/2022 / Validità: da 8.5.3800