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