DIPARTIMENTO   DI   INFORMATICA
Università di Torino

Gian Luca Pozzato - MATEC

Esercitazione del 7/3/2005


Microsoft Access

Durante l'esercitazione, alcuni studenti hanno riscontrato il seguente problema: Access non consentiva di assegnare all'attributo CF (codice fiscale) il ruolo di chiave primaria della tabella Studenti; Access giutificava questo suo comportamento segnalando l'impossibilità di avere una chiave primaria contenente valori NULL.

Spiegazione: Access non consente di definire una chiave primaria su un attributo di una tabella che contiene già valori nulli per quell'attributo.
Prima di attribuire a CF il ruolo di chiave, abbiamo inserito alcuni valori nella tabella Studenti: evidentemente, alcune righe inserite presentavano valore nullo per l'attributo CF. Per questo motivo Access ha impedito la successiva impostazione di tale attributo come chiave primaria.
Ecco spiegato perchè solo alcuni studenti hanno avuto questo problema: si tratta di coloro i quali avevano inserito delle righe nella tabella lasciando vuoto il codice fiscale.


Esercizio JavaScript: slideshow di siti web

Esercizio: Vogliamo creare una pagina web contenente due link che consentono, rispettivamente, di aprire e chiudere un controller di siti web. Il controller è una semplice finestrella priva di strumenti per la navigazione (status, menubar, ecc.) che compare in un punto preciso dello schermo (ad esempio in basso a destra).
Il controller avvia, gestisce e chiude uno slide-show di siti web. In pratica, il controller permette di aprire e chiudere una terza finestra, completa di strumenti di navigazione, in cui vengono visualizzati alcuni siti, es. google.it, libero.it, gazzetta.it e di.unito.it. Oltre ai link per l'apertura/chiusura di tale finestra, il controller mette a disposizione due bottoni (o link) per visualizzare in sequenza i siti esattamente come fatto nel caso dello slideshow di immagini (Esercizio 4 da consegnare).

Soluzione proposta: in prima battuta, ci occupiamo di costruire una semplice pagina che avvia il controller; la pagina in questione si chiama index.htm e presenta due semplici link che aprono/chiuduno il controller; il codice JavaScript risiede in un file esterno chiamato gestione indice.js.
Ciascun link cattura l'evento onClick invocando le funzioni ApriFinestra, che "ingloba" la funzione open(URL, nomeFinestra, parametri) per l'apertura del controller, e ChiudiFinestra, che ingloba close() per la chiusura.
Come detto nel testo, non vogliamo che il controller presenti gli strumenti della navigazione: pertanto, i parametri di open saranno del tipo menubar=no, status=no, ecc. Volendo posizionare il controller in una posizione precisa dello schermo, aggiungiamo due parametri alla funzione ApriFinestra, chiamati allineaDaSinistra e allineaDallAlto; i due parametri della open che posizionano la finestra in un punto fissato dello schermo sono diversi a seconda che si utilizzi Netscape o Explorer ( screenX/screenY nel primo caso, left/top nel secondo): per risolvere questo inconveniente, la funzione ApriFinestra usa l'oggetto navigator per identificare il browser utilizzato e costruisce l'opportuna stringa di parametri (ad esempio usando screenX piuttosto che left).

La finestra controller visualizza il file controller.htm; il codice JavaScript associato a questo file è contenuto nel file esterno gestione controller.js. Il controller presenta due link di apertura/chiusura della finestra in cui verranno visualizzati i siti; tale meccanismo è realizzato in modo standard con le funzioni open e close, inglobate nelle due funzioni chiamate ApriPrimoSito e Chiudi.
Per realizzare lo slideshow dei siti, il controller presenta due link (o due bottoni), le cui ancore catturano gli eventi onClick invocando, rispettivamente, le funzioni Precedente e Successiva, che si comportano in modo analogo a quanto visto nell'esercizio dello slideshow di immagini: la variabile i conserva l'indice del sito corrente e viene incrementata/decrementata tenendo conto che i siti da visualizzare sono quattro. Gli URL dei siti da visualizzare sono memorizzati in un array, chiamato elencoSiti. Per permettere a Precedente e Successiva di modificare la pagina visualizzata nella finestra è necessario modificare l'attributo location.href della finestra stessa.



   Back to Gian Luca Pozzato's home page