Buono sconto 4% su Toner e Cartucce agli utenti AZpoint. SU Iomiricarico.it!!
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).
|