Esercizio ODBC
Configurare il driver ODBC
• Start  Control Panel  Administrative
Tools
• Aprire: Data Source(ODBC)
• User DSN  Add….
• Selezionare il driver : Oracle ODBC Driver
(in OraHome92)
Configurare Oracle ODBC driver
• Data source name: un nome del tutto arbitrario
(uso Mionome.oracle1.odbc)
• TNS Service name: il service name del database
oracle verso cui voglio effettuare la connessione.
(oracle1 oppure oracle2)
• UserID: il mio user name di Oracle
• Click su OK
Esercizio
• Creare una query MS Access per visualizzare
e cancellare le sessioni gestite nell’esercizio
5.
• Creo una directory ~/ese6bdl
• Copio in ~/ese6bdl da ~ghelli/bdl05/ese6 i
file create.sql (cancellazione in cascata a
partire dalle sessioni) e createview.sql (per
estrarre i secondi dalla tabella Sessioni)
• Compilo i file.
Funzionalità di Microsoft Access
• Table: tabelle relazionali sulle quali è possibile creare
form, eseguire query, creare report. La creazione delle
relazioni può essere effettuata anche tramite wizard.
• Query: interrogazione SQL Access (possibilità di
creazione tramite interfaccia grafica e/o wizard).
• Form: per creare delle semplici ed intuitive maschere di
inserimento dati sulle table presenti nel database.
• Macros: insieme di operazioni che il database compie
automaticamente in corrispondenza degli eventi
selezionati.
• Report: strumento per la presentazione (tipicamente in
formato stampa) delle table o dei risultati di query.
• Modules: strumento per la programmazione di procedure e
funzioni in VBA.
Utilizzare tabelle Oracle in MS Access
Start  Programs  Microsoft Access
Blank database
File  Get External Data  Link Tables
Settare il parametro File of types a ODBC database
Selezionare Machine Data Source e selezionare l’istanza di
oracle a cui si vuole connettersi (Mionome.oracle1.odbc)
• Inserire Username e Password dell’istanza di oracle a cui
si vuole connetersi.
• OK, e aspettare…
•
•
•
•
•
Usare tabelle Oracle in MS Access
• Selezionare le tabelle “Acquisti, Oggetti,
Scelte, Sessioni, Sessioni_Secondi”.
• Premo solo OK per tutte le richieste di
selezione di campi per integrità referenziale.
• Apro e modifico le tabelle.
• Osservo l’effetto delle modifiche sulle
tabelle Oracle, usando SqlPlus Worksheet:
– select * from <tabella>;
Query: Sessioni Aperte
• Creo una query Access che mostri per ogni
sessione aperta:
– ID della sessione
– il nome dell’utente,
– il suo anno di nascita
– Il numero di acquisti effettuati dall’utente;
– Il prezzo totale degli acquisti effettuati
dall’utente;
Creazione di Sessioni Aperte
• Nella finestra di gestione del database seleziono
queries.
• Premo il bottone New  Opzione Design View 
OK
• Dalla finestra Show Table (menu Query scelta
Show Table) seleziono con Add le tabelle Acquisti,
Oggetti, Sessioni. Premo Close.
• Considerato che per selezionare un campo di una
tabella devo fare doppio click sul suo nome,
seleziono i campi: IDSessione,NomeUtente,
AnnoNascita, prezzo
Creazione di Sessioni Aperte
• Creo le Join tra le tabelle:
– trascino il campo IDSessione sul campo sessione
– trascino il campo IDOggetto sul campo oggetto
• Definisco le outer join: faccio doppio click sulla
linea che rappresenta
– la join tra Sessioni e Acquisti e seleziono
l’opzione 2 (da Sessioni verso Acquisti).
– la join tra Acquisti e Oggetti e seleziono
l’opzione 3 (da Acquisti verso Oggetti).
Creazione di Sessioni Aperte
• Trasformo la query in una group by: mi posiziono sulla
parte inferiore della finestra della query e premo il tasto
destro, seleziono Totals.
• Modifico il campo PREZZO della select:
– Sostituisco PREZZO con TOTALE: PREZZO
– E sostituisco Group By con Sum
• Inserisco un ulteriore campo alla select:
Field (campo)
ACQUISTI: SESSIONE
Total (totale)
Count
• Salvo la query come: Sessioni Aperte.
• Eseguo la query premendo !
Form in Access
• Creo una form che consente di eliminare una
sessione
• La form mostra le sessioni nella tabella sessioni;
ogni sessione è associata ad un bottone che
premuto ne causa la cancellazione.
Form Cancellazione Sessioni
• Nella finestra di gestione del database seleziono
forms.
• Premo il bottone New  Opzione Form Wizard 
OK
• Seleziono la tabella o query su cui eseguire la ricerca e i
campi che devono comparire nel form:
– Query: Sessioni Aperte
– Campi: Tutti (premere >>)
• Click su Next
Form Cancellazione Sessioni
• Seleziono il layout del form tabular tra quelli
disponibili e premo “Next”.
• Seleziono lo stile grafico tra quelli disponibili e
premo “Next”.
• Scrivo il nome FormCancellazioneSessioni,
seleziono Open the form; quindi seleziono il tasto
“Finish”.
Form Cancellazione Sessioni
Aggiungo un bottone di comando (cancellazione)
alla form.
• Clicco con il tasto destro del mouse sul form
appena creato; comparirà un menu da cui scegliere
il comando Form Design
• Seleziono dalla Toolbox il “Command Button”
identificabile dalla seguente figura:
• Clicco sul form, nel punto in cui deve comparire il
bottone.
Form Cancellazione Sessioni
• Seleziono nel Wizard la categoria “Record
Operation” e tra le azioni, il comando
“Delete Record”; quindi premere “Next”.
• Seleziono il testo o la figura che dovrà
contraddistinguere il bottone appena creato
e premere il tasto “Next”.
• Scrivo il nome associato al bottone e quindi
premo il tasto “Finish”.
Esercizio di query
• Definire una query che per ogni sessione
ritorni:
–
–
–
–
–
IDSESSIONE
NOME UTENTE
ANNO NASCITA
NUM. SCELTE
NUM. ACQUISTI
Soluzione
• Definire una query che calcoli il numero
delle scelte per sessione
• Definire una query che calcoli il numero
degli acquisti per sessione
• Definire una query che faccia la giunzione
tra i risultati delle due query precedenti
Esercizio di Form
• Realizzare una form per l’immissione dati e
la cancellazione nella tabella Dipendenti del
database del progetto
– La form deve mostrare i dati in formato
Columnar
– Deve avere un bottone di comando per
l’inserimento dati (funzionalità add new record)
e per la cancellazione