Il linguaggio ASP
Lezione 3
La connessione al database con ASP
Gli oggetti CONNECTION e RECORDSET
Il linguaggio ASP
Come è facile rendersi conto, l’importanza di
linguaggi dinamici come ASP è fondamentale
per poter costruire un sito che non si limiti a
rendere visibili delle informazioni. Infatti
spesso, nella realizzazione di un sito,
abbiamo la necessità di interagire con gli
utenti, di permettergli di operare in maniera
attiva, di lasciarci dei messaggi, di
selezionarli, ecc.
Il linguaggio ASP
ASP ci permette tutto ciò in quanto è in grado
di interagire con i database, anche qui grazie
agli oggetti ADO.
Analizzeremo dapprima l’accesso al database
ed il suo output.
Vedremo più in seguito come interagire
completamente utilizzando gli strumenti per
l’input dei dati costituiti dai form.
Il linguaggio ASP
La connessione con i database
Anche con ASP la connessione con un
database passa attraverso tre passaggi:
- la creazione dell’oggetto CONNECTION;
- la generazione della stringa di connessione;
- l’apertura della connessione.
Analizziamole singolarmente.
Il linguaggio ASP
La creazione dell’oggetto CONNECTION
La sintassi per la creazione di un nuovo
oggetto CONNECTION con ASP è la
seguente:
Set nomeconn = server.createobject("adodb.connection")
dove nomeconn è il nome che intendiamo
assegnare al nostro oggetto CONNECTION.
Il linguaggio ASP
La generazione della stringa di connessione
La stringa di connessione ha in ASP la stessa
funzione che ha in Visual Basic ed ha la stessa
sintassi con un’unica differenza.
Infatti, poiché stiamo potenzialmente lavorando su un
server, l’indirizzo del nostro database non può
essere fornito come indirizzo assoluto, come
abbiamo gatto utilizzando il Visual Basic, ma va
fornito come indirizzo relativo.
In ASP possiamo utilizzare la funzione
server.mappath che, avuto in input il nome
dell’oggetto, è in grado di fornircene l’indirizzo
relativo.
Il linguaggio ASP
La generazione della stringa di connessione
La stringa di connessione diventa quindi la seguente:
"provider=microsoft.jet.oledb.4.0;
data source= ‘“ &
server.mappath("esempio.mdb") & “‘“
Come vedete componiamo la stringa utilizzando la
funzione server.mappath con il nome del nostro
database (Quelli indicati dalle frecce e colorati in
giallo sono apici). Esempio.mdb è, ovviamente il
nome del database al quale vogliamo accedere.
Il linguaggio ASP
La generazione della stringa di connessione
La stringa di connessione può anche qui
essere assegnata ad una variabile stringa.
Esempio:
strconn = "provider = […] “
dove strconn è il nome della variabile stringa
che intendiamo utilizzare.
Il linguaggio ASP
L’apertura della connessione
Anche in ASP l’apertura della connessione si ottiene
richiamando il metodo OPEN dell’oggetto
connection seguito dal nome della variabile che
contiene la stringa di connessione:
nomeconn.open strconn
dove nomeconn è il nome assegnato alla
connessione e strconn è la variabile utilizzata per
memorizzare la stringa di connessione.
Il linguaggio ASP
La chiusura della connessione
Anche qui, quando la connessione non è più
necessaria è opportuno chiuderla, utilizzando
il metodo CLOSE dell’oggetto connection:
nomeconn.close
dove nomeconn è il nome assegnato alla
connessione.
Il linguaggio ASP
La connessione al database - Esempio
Si consideri a titolo di esempio di connessione il seguente
codice:
<%
set dbutenti=server.createobject("adodb.connection")
stringa="provider=microsoft.jet.oledb.4.0; data source='"&
server.mappath("esempio.mdb") & "'"
dbutenti.open stringa
dbutenti.close
%>
Ovviamente è propedeutica la creazione del database
“esempio.mdb” richiesto dalla stringa di connessione.
Il linguaggio ASP
L’oggetto RECORDSET
Anche in ASP, come in VB l’accesso al
database avviene con l’utilizzo dell’oggetto
RECORDSET, che permette di definire il
gruppo di record del database su cui
lavorare.
L’utilizzo dell’oggetto RECORDSET è molto
semplice e si articola in tre fasi principali:
- la creazione dell’oggetto RECORDSET;
- l’apertura del recordset;
- la chiusura del recordset a fine operazioni.
Il linguaggio ASP
La creazione dell’oggetto RECORDSET
La sintassi per la creazione di un nuovo oggetto
RECORDSET con ASP , analogamente
all’oggetto CONNECTION, è la seguente:
Set nomerecordset = server.createobject("adodb.recordset")
dove nomerecordset è il nome che intendiamo
assegnare al nostro oggetto RECORDSET.
Il linguaggio ASP
L’apertura del RECORDSET
L’apertura del recordset in ASP avviene tramite il
richiamo del metodo OPEN sull’oggetto, seguito
dalla stringa SQL che si intende eseguire sul
database e dal nome della connessione attiva. La
sintassi completa è dunque la seguente:
nomerecordset.open SQL, nomeconn
dove nomerecordset è il nome del nostro oggetto
RECORDSET, SQL è la stringa SQL da eseguire e
nomeconn è il nome della connessione aperta.
Il linguaggio ASP
La chiusura del recordset
Anche qui, quando il recordset non è più
necessario è opportuno chiuderlo, utilizzando
il metodo CLOSE dell’oggetto recordset:
nomerecordset.close
dove nomerecordset è il nome assegnato al
nostro oggetto recordset.
Il linguaggio ASP
Il recordset - Esempio
Si consideri a titolo di esempio di generazione del recordset il
seguente codice:
<%
Set recset=server.createobject("adodb.recordset")
stringasql=“select * from TABELLA”
recset.open stringasql, dbutenti
recset.close
%>
Ovviamente è propedeutica l’apertura della connessione
(nell’esempio chiamata dbutenti). Nell’esempio TABELLA è
il nome di una tabella presente nel nostro database.
Il linguaggio ASP
Il recordset – Esercitazione conclusiva
Proviamo adesso a realizzare una pagina ASP
che ci permetta di aprire la connessione al
nostro database visualizzando il contenuto di
una tabella.
Utilizzeremo, anche qui, la struttura di controllo
di ripetizione precondizionale associata alla
funzione EOF del recordset e alla collezione
FIELDS con le sue proprietà. Possiamo fare
riferimento, per questi concetti alle
conoscenza, già acquisite, relative al VB, in
quanto analoghe.