English
Instant Developer Foundation Documentazione
  • Tutorial applicazioni web
  • Lavorare con i database

Assegnare lista valori Binary Values

copia link
<< Video precedente
Apri in una finestra a tutto schermo.
Video successivo >>

Trascrizione

Concentriamoci ora su un’altra tabella, necessaria all’applicazione: la tabella denominata Media. In questa tabella vorrei poter memorizzare riferimenti a file esterni che siano video, immagini, url sempre inerenti ad un appartamento.

Questa sarà dunque una tabella di dettaglio, legata alla tabella Appartamenti, che ci consentirà di memorizzare, per lo stesso appartamento più risorse; deve esistere una relazione tra la tabella Appartamenti e la tabella Media, dovrà esser presente il campo e l’oggetto Foreign Key per ottenere una relazione 1 a molti: 1 appartamento molte Media risorse.

Soffermiamoci subito sull’integrità referenziale: se eliminiamo 1 appartamento cosa ne vogliamo fare delle risorse collegate? Direi eliminazione dell’appartamento e di tutti i Media collegati. Ecco il caso della Regola di cancellazione a Propaga Modifiche.

Procediamo con la creazione della tabella, puntatore sul nome del database, tasto destro Aggiungi Tabella, Impostiamo come nome Media e anche come descrizione e titolo; imposto Media anche come elemento e confermo il tutto.

Passo alla creazione del campo….dovrei creare una chiave primaria denominata Id (Char Fixed 20) … ormai tutte le tabelle hanno la stessa chiave: non posso copiarla dalla tabella Appartamenti o dalla tabella Localita?

Nell’albero di progetto posso eseguire 2 operazioni: Spostare un elemento oppure Duplicare un elemento.

L’operazione di spostamento avviene solo con il mouse: prendo il campo Id della tabella Appartamenti, lo trascino sulla tabella Media, ed ecco l’avviso! Stiamo spostando un elemento in un altro contesto! Siamo sicuri? Beh direi di no, noi vogliamo duplicare l’oggetto.

Allora per la duplicazione dobbiamo eseguire l’operazione di drag & drop con mouse e tastiera: sempre tenendo premuto il tasto CTRL. Prendiamo il campo Id, trasciniamolo sulla tabella Media e teniamo premuto il tasto CTRL; rilasciamo il mouse e quindi la tastiera e così abbiamo duplicato il campo.

Quindi riassumo: per duplicare si esegue il drag & drop di un OGGETTO CAMPO su un oggetto TABELLA e intanto si preme CTRL sulla tastiera.

Il prossimo campo che dobbiamo aggiungere è invece il campo di foreign key, campo per la relazione tra la tabella Appartamenti e la tabella Media, l’operazione è simile ma non identica: per creare un campo e la relazione si esegue il drag & drop tra TABELLE, e non con i campi: trascino la tabella Appartamenti sulla tabella Media e intanto premo il tasto SHIFT sulla tastiera.

Ecco il campo IdAppartamento e la relazione Foreign key tra le due tabelle: apriamo con doppio clic e impostiamo l’integrità referenziale-> Regole di cancellazione: Propaga Modifiche.

Altro campo, Filename (tasto destro Aggiungi campo) impostiamo nome, descrizione e titolo: qui vorremo memorizzare il filename della risorsa quindi se fosse un file il nome ed estensione, se fosse un url il valore http etc; imposto char 255 anche se potrebbe servire un campo text piu grande.

Pensiamo un attimo se fosse un file reale: se fosse un file reale dovremmo dare all’utente la possibilità di eseguire un upload del file….il file verrebbe memorizzato in una cartella temporanea del server e spostato nella cartella definitiva solo se l’utente deciderà di salvare il tutto. Abbiamo bisogno di un flag che ci indica se il file si trova nella cartella temp oppure no…diciamo un valore boolean… ma qui troviamo quello che può’ sembrarci una stranezza….tra i tipi dati non esiste il tipo Boolean. Questo è dovuto al fatto che il tipo Boolean non è un tipo presente in tutti i database e laddove presente spesso ha valori con significati diversi da db a db: esempio in alcuni database è gestito numericamente come -1 / 0 ed in altri come 1 / 0 dove -1 o 1 sono il valore TRUE e 0 il valore FALSE.

Per scelta, nella definizione di un campo non esiste il tipo Boolean ma esiste comunque un modo per rappresentarlo: alla fine il valore Boolean è un Intero con 2 valori possibili: di solito -1 e 0.

Un campo che può’ assumere valori specifici si dice campo con una Lista Valori associata. La Lista valori è un oggetto del progetto che contiene sotto un unico Identificativo valori costanti possibili: valori costanti quindi un qualcosa che a runtime non può essere modificato, ma solo utilizzato.

Tornando al campo Cartella Temp potremmo associare una Lista Valori con 2 valori -1/0; questa lista è già presente di default in tutti i progetti ed è chiamati Binary Values: si trova nell’albero di progetto, all’interno del ramo denominato Libreria Database (il ramo che contiene oggetti utili al database), e tra le voci costanti troviamo proprio Binary Values con i due valori possibili true e false dove true = -1 e false = 0.

Come L’associazione Campo <-> Lista valori avviene nella definizione del campo … puntatore sul nome di tabella Media, tasto destro Aggiungi Campo: nome Cartella Temp, descrizione e titolo identici…non inserisco gli esempi di contenuto ma scelgo subito la proprietà Lista Valori e nella combobox trovo le liste valori presenti nel progetto tra cui Binary Values; è una impostazione applicativa quindi, in teoria nel database potrà essere inserito qualsiasi valore non per forza -1/0 ma a livello di codice e di interfaccia l’utente potrà selezionare tra questi due valori. (Confermiamo la scheda facendo clic su Salva).

Nel prossimo tutorial aggiungeremo Liste Valori personalizzate, con valori e testi scelti da noi e utili al progetto.

Ultima modifica: 19/03/2021 / Validità: da 20.0.7800

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum

Vedi anche

    Scarica il progetto di esempio You Bb Project.zip