|
ASP a puntate - lez. 7
Pagina :
1 |
2
| 3
| 4
I recordset
In questa lezione, la settima di questa guida ad ASP, parleremo dei Recorser,
un'altro oggetto ASP fornito da ADO.
Il Recordset è un altro Oggetto (come il Connection) che ci è fornito da ADO.
Una volta aperta la Connessione col DB, è possibile usare l’oggetto
Recordset (creato sempre attraverso il metodo CreateObject dell’oggetto
Server) per recuperare le informazioni, esaminare risultati e fare modifiche
a un set di righe del database, o record.
L’oggetto Recordset consente di eseguire istruzioni SQL restituendo un
insieme di record filtrati tramite la query. Combinando le funzioni degli
oggetti Connection e Recordset possiamo costruire efficienti applicazioni
basate su database.
Vediamo come si usa. Una volta che sono collegato col DB, creo la variabile
che conterrà l’oggetto Recordset e una sua istanza:
Dim objRS
Set objRS = Server.CreateObject("ADODB.Recordset")
Ora creo la query da eseguire:
Dim strSQL
strSQL="SELECT Nome, Cognome FROM Clienti"
Usiamo il metodo Recordset Open dicendo al recordset la stringa SQL che
vogliamo eseguire e su quale database eseguirla:
objRS.Open strSQL, DBConn
Il recordset può contenere più righe, e punta sempre alla prima riga di un
set di righe.
Per accedere al singolo dato, eseguo il comando:
objRS("Nome")
che mi fornirà il valore del nome correntemente puntato. Per restituire il
valore e visualizzarlo uso l'Oggetto Response:
Response.Write objRS("Nome")
Alla fine ricordarsi sempre di chiudere e cancellare il recordset, e di
chiudere la connessione con il DB:
'Chiudo l’oggetto Recordset
objRS.Close
'Cancello l’oggetto
Recordset
Set objRS = Nothing
'Chiudo l’oggetto Connessione
DBConn.Close
'Cancello l’oggetto Connessione
Set DBConn = Nothing
I metodi di scorrimento dei record all’interno dell’oggetto Recordset sono:
MoveFirst (punta alla prima riga del recordset)
MoveLast (punta all’ultima riga del recordset)
MoveNext (punta alla riga successiva)
MovePrevious (punta alla riga precedente)
Move N (punta a N record più avanti se N>0 o più indietro se N<0)
Esistono anche altri due metodi utili di quest’oggetto, il Sort per
l’ordinamento e il Filter per il filtraggio. Due esempi sono:
objRS.Sort = "Clienti"
objRS.Filter = " Città = 'Firenze' "
Non sono però molto consigliabili, perché con la Select seleziono prima
tutti i dati e dopo li ordino o filtro, quindi tanto vale usare la Select
con ORDER BY e WHERE così recupero subito i dati come li voglio.
Grazie all'Oggetto Recordset è possibile anche effettuare la Paginazione,
cioè la tecnica che usano i motori di ricerca per suddividere molti record
su tante pagine.
Ora vediamo un esempio di utilizzo dell'Oggetto Recordset:
Dim DBConn, objRS
Set DBConn = Server.CreateObject ("ADODB.Connection")
DBConn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" &
Server.MapPath("/cartella/database.mdb")
Set objRS =
Server.CreateObject("ADODB.Recordset")
Dim strSQL
strSQL="SELECT
DISTINCT Prodotto, Prezzo FROM Prodotti ORDER BY Prodotto"
objRS.Open
strSQL, DBConn
Response.Write "<TABLE BORDER=1>"
Response.Write
"<TR><TH>Nome Prodotto</TH><TH>Prezzo
(€)</TH></TR>"
Do Until objRS.EOF = True
Response.Write
"<TR><TD>" & objRS("NomeProdotto") &"</TD>"
Response.Write "<TD>" & objRS("Prezzo") &
"</TD></TR>"
objRS.MoveNext
Loop
Response.Write("</TABLE>")
objRS.Close
Set objRS=Nothing
DBConn.Close
Set DBConn=Nothing
Qui si è usata una proprietà dell'Oggetto Recordset, EOF (End Of File), che
diventa True se sono alla fine del Recordset.
Esiste anche quella opposta, la BOF (Begin Of File).
Pagina :
1
|
2 |
3 |
4
|