1 Università della Tuscia - Facoltà di Scienze Politiche.Informatica 2 - a.a Prof. Francesco Donini Accesso a basi di dati con ASP
2 Università della Tuscia - Facoltà di Scienze Politiche.Informatica 2 - a.a Prof. Francesco Donini Algoritmo per visualizzare un DB 1. “creare” una connessione tra lo script ASP e il database 2. Costruire una QUERY in linguaggio SQL che opera sul database 3. Recuperare la risposta del database in un insieme di record “Recordset” 4. Visualizzare i record
3 Università della Tuscia - Facoltà di Scienze Politiche.Informatica 2 - a.a Prof. Francesco Donini Connessione al database Metodo: usare una STRINGA DI CONNESSIONE Specificare il DRIVER (Microsoft Access Driver (.mdb) ) Specificare il percorso completo del file del database
4 Università della Tuscia - Facoltà di Scienze Politiche.Informatica 2 - a.a Prof. Francesco Donini Percorso completo di un file Metodo MapPath dell’oggetto Server di ASP Sintassi: Server.MapPath(“percorso relativo del file”)
5 Università della Tuscia - Facoltà di Scienze Politiche.Informatica 2 - a.a Prof. Francesco Donini Costruire la stringa di connessione 1. Costruite la stringa che specifica il driver e quella che specifica il percorso var driverString = "DRIVER={Microsoft Access Driver (*.mdb)}; "; var databaseString = "DBQ=" + Server.MapPath("./studenti.mdb") + ";"; 2. Concatenate le stringhe var connString = driverString + databaseString;
6 Università della Tuscia - Facoltà di Scienze Politiche.Informatica 2 - a.a Prof. Francesco Donini "Creare" la connessione Metodo createObject dell’oggetto Server Sintassi: var adoConnection = Server.CreateObject("ADODB.Connection"); L’argomento ADODB.connection stabilisce che l’oggetto creato è una connessione ActiveX Data Object DataBase
7 Università della Tuscia - Facoltà di Scienze Politiche.Informatica 2 - a.a Prof. Francesco Donini Aprire la connessione adoConnection.Open(connString); Il metodo Open “apre” una connessione al Database specificato nella stringa di connessione connString
8 Università della Tuscia - Facoltà di Scienze Politiche.Informatica 2 - a.a Prof. Francesco Donini SQL Structured Query Language Linguaggio per l’interrogazione di basi di dati Visibile in Access dal menù Visualizza
9 Università della Tuscia - Facoltà di Scienze Politiche.Informatica 2 - a.a Prof. Francesco Donini Esempi di query SELECT personale.* FROM personale; SELECT personale.nome, personale.cognome, personale.indirizzo FROM personale; SELECT nome, cognome, indirizzo FROM personale;
10 Università della Tuscia - Facoltà di Scienze Politiche.Informatica 2 - a.a Prof. Francesco Donini Stringa contenente una query var mySQL = "SELECT " + "nome,cognome,matricola " + "FROM tabellaStudenti"; Seleziona i campi nome, cognome, matricola dalla tabella studenti
11 Università della Tuscia - Facoltà di Scienze Politiche.Informatica 2 - a.a Prof. Francesco Donini Per costruire una query... Aprite la base di dati in Access Componete la query con la composizione guidata e in visualizzazione struttura Quando la query è pronta, visualizzatela in SQL (menù visualizza) Copiatela e incollatela nel file ASP
12 Università della Tuscia - Facoltà di Scienze Politiche.Informatica 2 - a.a Prof. Francesco Donini Invio della query e ricezione della risposta È necessario eseguire la query adoRecordSet = adoConnection.Execute(mySQL); Il risultato è un oggetto di tipo Recordset (insieme di record) L’insieme di record contiene la risposta alla query
13 Università della Tuscia - Facoltà di Scienze Politiche.Informatica 2 - a.a Prof. Francesco Donini Recuperare le informazioni di un recordset Esempio: se nel database Access c’è un campo “nome”, l’informazione corrispondente nel recordset si ottiene con la sintassi adoRecordSet("nome").Value
14 Università della Tuscia - Facoltà di Scienze Politiche.Informatica 2 - a.a Prof. Francesco Donini Scrivere le informazioni nella pagina HTML La sintassi scrive il valore dell'espressione nella pagina
15 Università della Tuscia - Facoltà di Scienze Politiche.Informatica 2 - a.a Prof. Francesco Donini Organizzazione della visualizzazione I record possono essere inseriti in una per essere visualizzati
16 Università della Tuscia - Facoltà di Scienze Politiche.Informatica 2 - a.a Prof. Francesco Donini Enumerare i record di un recordSet Metodo MoveNext() Permette di passare da un record al successivo Se non ci sono più record successivi, la proprietà Eof (End Of File) dell’oggetto Recordset assume valore true
17 Università della Tuscia - Facoltà di Scienze Politiche.Informatica 2 - a.a Prof. Francesco Donini Istruzione di ciclo Istruzione di ciclo while while (condizione) { … istruzioni Javascript … } Verifica la condizione, se è vera ripete le istruzioni, e ricomincia La ripetizione si interrompe quando la condizione diventa falsa
18 Università della Tuscia - Facoltà di Scienze Politiche.Informatica 2 - a.a Prof. Francesco Donini Enumerazione dei record while (adoRecordSet.Eof == false){ … istruzioni Javascript … adoRecordSet.MoveNext(); } Il ciclo si interrompe quando Eof vale true, cioè quando sono finiti i record condizione
19 Università della Tuscia - Facoltà di Scienze Politiche.Informatica 2 - a.a Prof. Francesco Donini Chiusura delle connessioni Un database può aprire un numero limitato di connessioni Se molti utenti accedono al database, ciascuno deve chiudere la sua connessione adoRecordSet.Close(); adoConnection.Close();
20 Università della Tuscia - Facoltà di Scienze Politiche.Informatica 2 - a.a Prof. Francesco Donini Riutilizzo della memoria La memoria di un calcolatore non è illimitata Se ci sono molte pagine ASP richieste, la memoria di ciascuna pagina va riciclata alla fine adoRecordSet = null; adoConnection = null;