Introduzione alle pagine ASP
Variabili e la prima pagina ASP
I Cicli di Controllo e i Blocchi Condizionali
SubRoutine e Function
Guida ai DataBase
Il modello Entità/Relazione
Connessione ai DataBase
Query con ASP
I Recordset
Utilizzo di MySQL con ASP
I Cookies
Gestione di File di Testo con ASP
Formattazione dei numeri
Gestione delle Stringhe
Gestione spazi nelle stringhe
Variabili scalari e Array
Reindirizzamento di una pagina
Operazioni matematiche
Inclusione di File
Consigli per la creazione di pagine ASP
Ecco qui le guide a tutti gli Oggetti Built-In di ASP:
Gli Oggetti Built-In di ASP
L'Oggetto Application
L'Oggetto AspError
L'Oggetto ObjectContext
L'Oggetto Request
L'Oggetto Response
L'Oggetto Server
L'Oggetto Session
Guida ASP da:
“Il mondo delle pagine ASP”
ALTRE GUIDE E MANUALI
Posizionamento motori di ricerca
Bed Breakfast Italia
Vacanza vacanze
Sicurezza stradale
Tutto sul matrimonio
Guida registrazione domini
Manuale Asp
|
|
I Recordset
Clicca Stampa per stampare la guida.
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).
Il metodo Getstring dell'Oggetto Recordset è illustrato in questo esempio.
|