Accesso a basi di dati con ASP
Università della Tuscia - Facoltà di Scienze Politiche.
Informatica 2 - a.a. 2005-06 - Prof. Francesco Donini
1
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
Università della Tuscia - Facoltà di Scienze Politiche.
Informatica 2 - a.a. 2005-06 - Prof. Francesco Donini
2
Connessione al database
 Metodo: usare una STRINGA DI
CONNESSIONE
 Specificare il DRIVER (Microsoft
Access Driver (.mdb) )
 Specificare il percorso completo del
file del database
Università della Tuscia - Facoltà di Scienze Politiche.
Informatica 2 - a.a. 2005-06 - Prof. Francesco Donini
3
Percorso completo di un file
 Metodo MapPath dell’oggetto Server di
ASP
 Sintassi: Server.MapPath(“percorso
relativo del file”)
Università della Tuscia - Facoltà di Scienze Politiche.
Informatica 2 - a.a. 2005-06 - Prof. Francesco Donini
4
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;
Università della Tuscia - Facoltà di Scienze Politiche.
Informatica 2 - a.a. 2005-06 - Prof. Francesco Donini
5
"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
Università della Tuscia - Facoltà di Scienze Politiche.
Informatica 2 - a.a. 2005-06 - Prof. Francesco Donini
6
Aprire la connessione
adoConnection.Open(connString);
Il metodo Open “apre” una connessione al Database
specificato nella stringa di connessione
connString
Università della Tuscia - Facoltà di Scienze Politiche.
Informatica 2 - a.a. 2005-06 - Prof. Francesco Donini
7
SQL
 Structured Query Language
 Linguaggio per l’interrogazione di basi
di dati
 Visibile in Access dal menù Visualizza
Università della Tuscia - Facoltà di Scienze Politiche.
Informatica 2 - a.a. 2005-06 - Prof. Francesco Donini
8
Esempi di query
 SELECT personale.* FROM personale;
 SELECT personale.nome,
personale.cognome, personale.indirizzo
FROM personale;
 SELECT nome, cognome, indirizzo
FROM personale;
Università della Tuscia - Facoltà di Scienze Politiche.
Informatica 2 - a.a. 2005-06 - Prof. Francesco Donini
9
Stringa contenente una query
var mySQL = "SELECT " +
"nome,cognome,matricola " +
"FROM tabellaStudenti";
Seleziona i campi nome, cognome,
matricola dalla tabella studenti
Università della Tuscia - Facoltà di Scienze Politiche.
Informatica 2 - a.a. 2005-06 - Prof. Francesco Donini
10
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
Università della Tuscia - Facoltà di Scienze Politiche.
Informatica 2 - a.a. 2005-06 - Prof. Francesco Donini
11
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
Università della Tuscia - Facoltà di Scienze Politiche.
Informatica 2 - a.a. 2005-06 - Prof. Francesco Donini
12
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
Università della Tuscia - Facoltà di Scienze Politiche.
Informatica 2 - a.a. 2005-06 - Prof. Francesco Donini
13
Scrivere le informazioni nella
pagina HTML
La sintassi <% =espressione %> scrive
il valore dell'espressione nella pagina
<%=adoRecordSet("nome").Value%>
Università della Tuscia - Facoltà di Scienze Politiche.
Informatica 2 - a.a. 2005-06 - Prof. Francesco Donini
14
Organizzazione della visualizzazione
 I record possono essere inseriti in una
<TABLE> per essere visualizzati
<TR>
<TD><%=adoRecordSet("nome").Value%></TD>
<TD><%=adoRecordSet("cognome").Value%></TD>
<TD><%=adoRecordSet("matricola").Value%></TD>
</TR>
Università della Tuscia - Facoltà di Scienze Politiche.
Informatica 2 - a.a. 2005-06 - Prof. Francesco Donini
15
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
Università della Tuscia - Facoltà di Scienze Politiche.
Informatica 2 - a.a. 2005-06 - Prof. Francesco Donini
16
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
Università della Tuscia - Facoltà di Scienze Politiche.
Informatica 2 - a.a. 2005-06 - Prof. Francesco Donini
17
Enumerazione dei record
while (adoRecordSet.Eof == false){
… istruzioni Javascript …
adoRecordSet.MoveNext();
}
condizione
 Il ciclo si interrompe quando Eof vale
true, cioè quando sono finiti i record
Università della Tuscia - Facoltà di Scienze Politiche.
Informatica 2 - a.a. 2005-06 - Prof. Francesco Donini
18
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();
Università della Tuscia - Facoltà di Scienze Politiche.
Informatica 2 - a.a. 2005-06 - Prof. Francesco Donini
19
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;
Università della Tuscia - Facoltà di Scienze Politiche.
Informatica 2 - a.a. 2005-06 - Prof. Francesco Donini
20