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