LE PAGINE ASP
(Active Server Pages)
TECNOLOGIE DI SCRIPT
L’integrazione di HTML con CSS e linguaggi di
scripting, come JavaScript, JScript o VBScript,
permette di creare pagine Web interattive e
dinamiche.
Gli script, a seconda di dove vengono eseguiti
vengono detti script lato client o script lato
server.
Le pagine ASP - Cristina Fregni
Script lato client
Vengono interpretati ed eseguiti nel browser,
installato sul computer del client, quando il
browser stesso preleva la pagina web.
Il codice di scripting, inserito nel codice HTML,
è contrassegnato dai tag <SCRIPT> e
</SCRIPT>. In particolare:
1.
2.
3.
4.
5.
il browser richiede una pagina al server
il server invia la pagina al browser
il browser invia la pagina al motore di script
il motore interpreta ed esegue lo script
il browser visualizza la pagina
Le pagine ASP - Cristina Fregni
Script lato server
Sono utilizzati per aggiungere interattività alle
pagine web e permettono di interagire con altri
programmi residenti sul server.
Gli script fanno parte della pagina, ma vengono
eseguiti sul server. Al browser viene inviato solo
codice HTML, quindi il codice sorgente non
compare mai. In particolare:
1.
2.
3.
4.
5.
il browser richiede una pagina al server
il server invia lo script al motore
il motore interpreta ed esegue lo script
il server invia la pagina di risposta al browser in formato HTML
Le pagine ASP - Cristina Fregni
il browser visualizza la pagina
Active Server Pages
E’ una tecnologia software per la realizzazione
di applicazioni distribuite, adottata da Microsoft,
che sfrutta le potenzialità degli strumenti server
dedicati alla connettività e delle risorse che il
server Microsoft ha a disposizione compresi i
linguaggi di scripting.
ASP quindi non è un linguaggio di
programmazione, né di scripting, ma una
tecnologia lato server.
Le pagine ASP - Cristina Fregni
Caratteristiche delle ASP
hanno estensione .asp
sono integrate con i file HTML
i tag <% e %> racchiudono la parte di codice
che deve essere elaborata dal server
non necessitano di compilazione
sono orientate agli oggetti e usano componenti
server ActiveX
Affinché il codice ASP venga interpretato occorre
disporre di un Web server Microsoft che supporti
le pagine, ad esempio IIS (Internet Information
Services).
Le pagine ASP - Cristina Fregni
GLI OGGETTI INTERNI DI ASP
RESPONSE
Permette di inviare informazioni dal server web al browser client
e di controllare come tali informazioni vengono inviate.
REQUEST
Si usa per accedere alle informazioni passate dal browser del
client al server web.
SESSION
E’ usato per definire uno spazio di memoria nel server associato
a ogni singola sessione http di un utente.
APPLICATION
Rappresenta un’area di memoria centrale condivisa tra tutti i
client e le applicazioni in esecuzione in un sito web.
SERVER
Fornisce una serie di metodi necessari per accedere alle risorse
del server.
ASPERROR
Consente di ottenere informazioni sugli errori degli script
all’interno delle pagine.
Le pagine ASP - Cristina Fregni
L’oggetto RESPONSE
Si usa per comunicare informazioni dal server al
client.
Possiede molte proprietà, metodi e collection.
La sua sintassi è:
Response.Collection/Proprietà/Metodo
Esempio n. 1
Le pagine ASP - Cristina Fregni
COLLECTION
Cookies
si usano per determinare il valore dei cookies
PROPRIETA’
Buffer
serve per il controllo dell’input quando si reindirizza una pagina col metodo Rdirect
CacheControl
determina se il proxy riesce a mantenere in cache il contenuto delle pagine ASP
CharSet
specifica il set di caratteri utiilizzato
ContentType
specifica il protocollo HTTP utilizzato
Expires
indica il tempo di memorizzazione della pagina nella cache del browser. Il valore 0 evita che le pagine
ASP siano memorizzate nella cache
ExpiresAbsolute
specifica data e ora in cui la pagina deve essere cancellata dalla cache del browser
IsClientConnetted
indica se il cliente è ancora connesso al server
METODI
Write
scrive una stringa in output
Redirect
permette il collegamento ad un’altra pagina
AddHeader
pone il valore specificato tra i tag <Header>
AppendToLog
aggiunge una stringa al log del web server per una interrogazione
BinaryWrite
scrive le informazioni inviate senza nessuna conversione in caratteri
Clear
cancella qualsiasi codice HTML nel buffer di trasmissione
End
ferma l’esecuzione della pagina ASP e restituisce il risultato corrente
Flush
invia immediatamento il contenuto del buffer di trasmissione
Le pagine ASP - Cristina Fregni
L’oggetto REQUEST
Si usa per recuperare informazioni di vario genere,
sia dal client che dal server stesso.
Possiede diverse collection, una proprietà e un
metodo.
La sua sintassi è:
Request.[Collection/Proprietà/Metodo] (Parametro)
Parametro è una stringa che specifica il valore da
utilizzare in una Collection o che deve essere
usata come input per un metodo o una proprietà.
Esempio n. 2
Le pagine ASP - Cristina Fregni
COLLECTION
ClientCertificate
i valori dei campi memorizzati nei certificati del client, che vengono mandati durante una richiesta
via HTTP
Cookies
I valori dei cookies spediti via HTTP
Form
i valori dei form che vengono utilizzati durante una richiesta via HTTP (metodo POST)
QueryString
i valori delle variabili in una interrogazione via HTTP (metodo GET)
ServerVariables
i valori delle variabili del server
PROPRIETA’
TotalBytes Read-only
restituisce il numero di byte spediti da un client durante una richiesta al server
METODI
BinaryRead
restituisce i dati spediti al server da un client come parte di un POST
Le principali variabili d’ambiente sono:
VARIABILE SERVER
DESCRIZIONE
SERVER_NAME
nome del server web
SERVER_SOFTWARE
nome del sistema operativo utilizzato dal server e nome del web server utilizzato
LOCAL_ADDR
indirizzo IP locale della macchina su cui risiede il server
REMOTE_ADDR
indirizzo IP remoto del computer client
REQUEST_METHOD
metodo usato da un modulo (POST/GET) per inviare informazioni
URL
URL del file richiesto
Le pagine ASP - Cristina Fregni
L’oggetto SESSION
Permette di mantenere sul server lo stato per i
singoli utenti.
Per ogni singola sessione HTTP di un utente
viene associato uno spazio di memoria nel server.
Viene creato quando un utente richiede una
nuova pagina ASP e viene distrutto dopo un
periodo di timeout fissato sul server.
Le pagine ASP - Cristina Fregni
COLLECTION
Contents
Contiene tutti gli elementi aggiunti alla sessione tramite script
StaticObjects
Contiene tutti gli elementi aggiunti alla sessione tramite il tag HTML<object>
PROPRIETA’
CodePage
Specifica il set di caratteri che sarà utilizzato nella visualizzazione di contenuti dinamici
LCID
Imposta o restituisce un intero che specifica un luogo o una regione. Contenuti come la data, l'ora e
la moneta verranno visualizzati in relazione alla regione scelta
SessionID
Restituisce un identificativo univoco per ciascun utente. L'ID viene generato dal server
Timeout
Restituisce oppure imposta il timeout per l'oggetto sessione nell'applicazione
METODI
Abandon
Termina una sessione e ne distrugge le variabili
Contents.Remove
Elimina un elemento dalla collection
Contents.RemoveAll()
Elimina tutti gli elementi della collection
EVENTI
Session_OnEnd
Quando termina una sessione
Session_OnStart
Quando inizia una sessione
Le pagine ASP - Cristina Fregni
L’oggetto APPLICATION
Viene usato per mantenere informazioni per
l’intero sito web.
Tutti gli utenti e le applicazioni accedono
all’unico oggetto Application esistente.
Viene creato sul server all’avvio del servizio
WWW ed è distrutto alla sua chiusura.
Le pagine ASP - Cristina Fregni
COLLECTION
Contents
Contiene tutti gli elementi aggiunti all'applicazione tramite script
StaticObjects
Contiene tutti gli elementi aggiunti all'applicazione tramite il tag HTML<object>
METODI
Contents.Remove
Elimina un elemento dalla collection
Contents.RemoveAll()
Elimina tutti gli elementi della collection
Lock
Impedisce ad altri utenti di modificare le variabili dell'oggetto Application
EVENTI
Application_OnEnd
Quando tutte le sessioni utente sono terminate e l'applicazione termina
Application_OnStart
La prima volta che una nuova sessione viene creata
Le pagine ASP - Cristina Fregni
L’oggetto SERVER
Fornisce proprietà e metodi fondamentali per
l’accesso alle risorse del server.
PROPRIETA’
ScriptTimeout
Imposta o restituisce il numero massimo in secondi per completare uno script
NumSecondi
Il numero massimo in secondi per completare uno script, prima che il server lo termini. Il valore di default
è 90 secondi
METODI
CreateObject
Crea un'istanza di un oggetto
Execute
Esegue un file ASP, all'interno di un altro
GetLastError()
Restituisce un oggetto ASPError che descrive la condizione di errore accorsa
HTMLEncode
Applica la codifica HTML ad una stringa specifica
MapPath
Mappa un percorso virtuale in un percorso fisico
Transfer
Trasferisce tutta l'informazione create in una pagina ASP ad una seconda pagina ASP
URLEncode
Applica le regole di codifica URL ad una stringa
Le pagine ASP - Cristina Fregni
L’oggetto ASPError
E' usato per visualizzare informazioni
dettagliate su qualsiasi errore in uno script.
L'oggetto viene creato quando si richiama il
metodo Server.GetLastError().
PROPRIETA’
ASPCode
Il codice d'errore generato da IIS
ASPDescription
Una descrizione dettagliata dell'errore
Category
La provenienza (linguaggio di scripting, oggetto...)
Column
La colonna che ha generato l'errore
Description
La descrizione dell'errore
File
Il file che ha generato l'errore
Line
Il numero di riga dell'istruzione che ha generato l'errore
Number
Il codice COM standard per l'errore
Source
Il codice della riga che ha generato l'errore
Le pagine ASP - Cristina Fregni
Il Linguaggio VBScript
E’ un linguaggio di scripting, derivato dal Visual
Basic, di cui conserva sostanzialmente sintassi
e caratteristiche fondamentali.
Per indicare che il linguaggio di script utilizzato
è VBScritp si usa la direttiva:
<% @ Language=VBScript %>
E’ il linguaggio predefinito per le pagine ASP,
quindi è possibile omettere la direttiva
Language.
Le pagine ASP - Cristina Fregni
Variabili
Per dichiarare una variabile si utilizza l’istruzione:
Dim NomeVariabile
All’inizio dello script è consigliabile inserire:
Option Explicit
che obbliga a dichiarare tutte le variabili.
Le variabili sono memorizzate in un unico tipo
detto variant, che può contenere qualsiasi tipo di
dato. Quando la variabile viene letta, VBScript le
assegna automaticamente un tipo in funzione dei
dati e del contesto.
Le pagine ASP - Cristina Fregni
Costanti
Il valore di una costante non può mai essere
modificato.
Una costante si dichiara con l’istruzione:
Const NOMECOSTANTE = valore
Per convenienza i nomi di costante sono scritti
in maiuscolo.
Le pagine ASP - Cristina Fregni
Operatori
MATEMATICI
DI CONFRONTO
LOGICI
+,-,*,/
\ (per la divisione intera)
MOD (per il resto della divisione intera)
& (concatenazione)
= , <> , < , > , <= , >=
And, Or, Not, Xor
Esempio n. 3
Le pagine ASP - Cristina Fregni
Struttura condizionale
Consente di specificare una sequenza di eventi
che si verifica se vengono soddisfatte
determinate condizioni.
La sua sintassi è:
If condizione Then
istruzioni
Else
istruzioni alternative
End If
Esempio n. 4
Le pagine ASP - Cristina Fregni
Struttura di scelta multipla
Esegue codice diverso a seconda del valore della
variabile, se il valore non è previsto nella lista
esegue un codice alternativo. La sintassi è:
Select Case variabile
Case valore1:
istruzioni1
Case valore2:
istruzioni2
…
Case Else
istruzioni alternative
Esempio n. 5 End Select
Le pagine ASP - Cristina Fregni
Strutture cicliche
Permettono di eseguire ripetutamente un blocco
di codice mentre una condizione è verificata o fino
a quando si verifica una condizione. Sintassi:
Do While condizione
istruzioni
Loop
Do
istruzioni
Loop Until condizione
Esempio n. 6
Esempio n. 7
Le pagine ASP - Cristina Fregni
Struttura di ripetizione enumerativa
E’ una struttura ciclica controllata da contatore.
Si utilizza quando si conosce a priori quante volte
eseguire il blocco
La sua sintassi è:
For contatore = Val.Iniziale To Val.Finale [Step passo]
istruzioni
Next
Esempio n. 8
Le pagine ASP - Cristina Fregni
Le Collection
Una Collection è un insieme di elementi (anche
di tipo differente) denominati membri.
Gli oggetti-membri di una Collection:
possono essere inseriti in ordine casuale e in
numero illimitato
sono generici, di vario tipo (form, controlli,
oggetti di classi create dal programmatore)
sono individuati in modo univoco da un valore
di tipo stringa detto chiave o da un indice intero
che va da 1 al numero di elementi dell’insieme.
Le pagine ASP - Cristina Fregni
La tabella seguente schematizza le proprietà e i
metodi più frequenti per l’elaborazione di
Collections:
Per…
inserire
elemento
un
si utilizza…
nuovo il metodo Add con la sintassi:
NomeCollection.Add Elemento,[Chiave],[Before],[After]
accedere ad un oggetto
il metodo Item:
NomeCollection.Item(Chiave/Indice)
eliminare un elemento
il metodo Remove con la sintassi:
NomeCollection.Remove ValoreChiave/ValoreIndice
verificare il n° di elementi la proprietà Count: NomeCollection.Count
accedere a tutti i membri il costrutto: For Each Oggetto In NomeCollection
dell’insieme
elaborazione elemento
Next
Le pagine ASP - Cristina Fregni
I Cookies
Un cookie è un file di testo, memorizzato
nell’hard disk del client, che può contenere fino a
255 caratteri.
Le principali funzioni di un cookie sono:
 salvare alcuni dati inseriti attraverso il browser così
che, a un successivo richiamo della pagina, i dati
possano essere recuperati
 salvare i dati inseriti con diverse pagine con form, in
modo che, nel caso di interruzione della connessione,
il software che si occupa della raccolta dei dati li possa
recuperare dai cookies, facendo ripartire l’utente
dall’ultima pagina visitata.
Le pagine ASP - Cristina Fregni
I cookies permettono quindi di mantenere lo stato
dell’utente anche dopo la visita corrente.
I browser associano un cookie ad ogni utente e
memorizzano il file creato durante la navigazione
nella cartella Cookies, inserita in un percorso di
default del browser.
Possono rimanere nell’hard disk del client per un
tempo variabile, perché è possible definirne la
scadenza e quindi la rimozione automatica.
Le pagine ASP - Cristina Fregni
Secondo la tecnologia ASP, i cookies sono gestiti
attraverso la collection Cookies degli oggetti
Response e Request.
La scrittura dei dati in un cookie nel computer
client si effettua con l’istruzione:
Response.Cookies(“NomeCookie”)[(“Chiave”)] = Valore
Esempio n. 9
Per leggere dati da un cookie, invece, si utilizza la
seguente istruzione:
Variabile = Request.Cookies(“NomeCookie”)[(“Chiave”)]
Esempio n. 10
Le pagine ASP - Cristina Fregni
Accesso ai DataBase
La tecnologia ASP è nata principalmente per
consentire l’interfacciamento con i DB ODBC
compatibili, è possibile infatti creare, eliminare,
recuperare e aggiornare dati all’interno dei
DataBase.
DBMS proprietari
ai dati memorizzati si poteva accedere solamente
con il programma che aveva creato il DB
Non era possibile condividere i dati
Modello UDA
(Universal Data Access)
fornisce uno specifico metodo in cui i dati
possono essere condivisi da programmi, S.O.,
protocolli di rete e piattaforme diverse
Le pagine ASP - Cristina Fregni
Microsoft implementa l’UDA con standard
denominati:
ODBC (Open DataBase Connectivity)
OLEDB (Object Linking and Embedding
DataBase)
ADO (ActiveX Data Object)
Le pagine ASP - Cristina Fregni
ODBC
(Open DataBase Connectivity)
Permette la connessione a sistemi per la
gestione di database relazionali.
Per un database compatibile ODBC si può
utilizzare
codice
applicativo
identico
indipendentemente dal tipo di database su cui
si effettuano le operazioni.
E’ quindi possibile usare un qualsiasi DBMS,
ma deve essere installato il driver per
l’interfaccia.
Le pagine ASP - Cristina Fregni
OLEDB
(Object Linking and Embedding DataBase)
Si usa per l’accesso a qualsiasi DBMS anche
non relazionale.
Una applicazione accede al database senza la
necessità di una interfacci specifica.
Microsoft dispone di un provider OLEDB che si
interfaccia con il driver ODBC per gestire le
applicazioni di database di vecchio tipo.
Le pagine ASP - Cristina Fregni
ADO
(ActiveX Data Object)
Tecnologia orientata agli oggetti che definisce
un’interfaccia di programmazione tra una
applicazione ASP, in esecuzione in un sito Web, e
i sistemi per la gestione di database (DBMS).
E’ possibile connettere un’applicazione anche a
database non ODBC compatibili, infatti opera con
qualsiasi fonte OLEDB.
Funziona, quindi, con i database maggiormente
utilizzati.
Le pagine ASP - Cristina Fregni
Schema delle Interfacce software per l’accesso a
un database mediante una pagina ASP
Richiesta
pagina ASP
www.sitoweb.com
ADO
Server Web
Computer
client
Esecuzione
script che
richiede accesso
a un database
OLEDB
Driver del
ODBC
DBMS
Database
Restituzione dei risultati
delle operazioni sui dati
Le pagine ASP - Cristina Fregni
GLI OGGETTI DI ADO
CONNECTION
Permette di stabilire la connessione all’origine dei dati. E’ il
primo passo per potersi collegare ai database per utilizzarli.
RECORDSET
Consente di operare con i dati contenuti in una tabella. Al suo
interno viene memorizzato un insieme di righe di una tabella. Si
usa, quindi, per leggere, modificare o inserire righe nella tabella.
ERROR
Rappresenta un errore generato dall’origine dei dati. Quando
una chiamata di metodo fallita genera errori multipli, si usa la
collection Errors.
FIELD
Rappresenta un campo all’interno della tabella.
COMMAND
Modalità alternativa per creare l’oggetto Recordset.
PARAMETER
La collection Parameters contiene i parametri necessari al
comando. Tali parametri sono memorizzati all’interno di questo
oggetto.
Le pagine ASP - Cristina Fregni
La connessione al DataBase
L’oggetto Connection, che appartiene alla libreria
dinamica ADODB del modello ADO, consente la
connessione logica ad una sorgente di dati.
Per creare il nuovo oggetto occore invocare il
metodo CreateObject dell’oggetto Server, il
nuovo oggetto viene quindi definito con la
seguente sintassi:
Dim NomeConnessione
Set NomeConnessione = Server.CreateObject(“ADODB.Connection”)
Le pagine ASP - Cristina Fregni
Per identificare il database su cui lavorare gli
script ADO necessitano della specifica di un
DSN (Data Source Name), cioè un file che
specifichi univocamente il nome e il luogo fisico
dove si trova il database.
Per creare un DSN di sistema occorre avere
accesso al Pannello di Controllo del computer
dove risiede l’origine dei dati.
In alternativa, se non si ha accesso locale al
server, è possibile inserire le informazioni per la
connessione all’interno di una stringa di
connessione.
Le pagine ASP - Cristina Fregni
Aprire la connessione
Dopo aver creato il nuovo oggetto di tipo
Connection si deve stabilire la connessione
effettiva con il metodo Open :
NomeConnessione.Open [Stringa di connessione]
La stringa di connessione è opzionale in quanto
prima dell’apertura della connessione è possibile
usare il metodo ConnectionString dell’oggetto
Connection.
Occorre fare molta attenzione nella digitazione
della stringa di connessione perché in essa si fa
distinzione tra maiuscole e minuscole.
Le pagine ASP - Cristina Fregni
La stringa di connessione è formata da una lista di
coppie di Argomenti=Valori che per Access è:
“DRIVER={Microsoft Access Driver (*.mdb)}; DBQ= percorsofisico\nomefile.mdb”
DRIVER: comunica all’oggetto Connection il tipo
di database utilizzato nella connessione
DBQ: comunica il percorso del database sul
server che deve essere un percorso fisico
completo, nel caso in cui non si conosca il
percorso
completo
occorre
utilizzare
Server.MapPath
Le pagine ASP - Cristina Fregni
Chiudere la connessione
Terminati i lavori, dopo aver chiuso la
connessione, occorre deallocare la memoria
associata all’oggetto Connection:
NomeConnessione.Close
Set NomeConnessione = Nothing
Le pagine ASP - Cristina Fregni
L’accesso ai dati del DataBase
Per utilizzare i dati contenuti in un database si usa
l’oggetto Recordset.
Un Recordset è un insieme di record che può
essere costituito da tutti i record di una tabella, da
un gruppo di record della tabella o dal risultato di
una interrogazione.
Per creare il Recordset si usa ancora il metodo
CreateObject dell’oggetto Server:
Dim NomeRecordset
Set NomeRecordset= Server.CreateObject(“ADODB.Recordset”)
Le pagine ASP - Cristina Fregni
Apertura del Recordset
La creazione dell’oggetto non inserisce alcun dato
in esso. Per farlo occorre utilizzare il metodo Open
la cui sintassi è:
NomeRecordset.Open [Source], [Connection], [CursorType], [LockType], [CommandType]
Source: stringa che contiene un comando
ammesso (nome di una tabella, istruzione SQL,
ecc..)
Connection: è l’oggetto o la stringa che contiene
le informazioni relative alla connessione
Le pagine ASP - Cristina Fregni
CursorType: definisce il modo di spostamento
all’interno dei record. Il cursore serve per poter
leggere un record alla volta all’interno di un
Recordset. I tipi di cursore sono quattro:
1. Cursore di Default (adOpenForwardOnly – valore 0): permette
spostamenti solo in avanti, è detto cursore idrante;
2. Cursore Keyset (adOpenKeyset – valore 1): è un cursore scorrevole
che permette di vedere le modifiche effettuate da altri utenti e di
spostarsi tra i record in avanti e indietro. Non si possono vedere i
record aggiunti o eliminati da altri utenti;
3. Cursore dinamico (adOpenDynamic – valore 2): cursore scorrevole
con cui è possibile vedere modifiche , aggiunte, cancellazioni fatte
anche da altri utenti. Sono consentiti tutti i tipi di spostamento;
4. Cursore Statico (adOpenStatic – valore 3): ci si può spostare avanti
e indietro, ma non rilevare le modifiche apportate da altri utenti.
Le pagine ASP - Cristina Fregni
LockType: determina se è possibile scrivere
nella tabella e in quale modo. Questa specifica è
importante a causa della natura multiutente di
un database online. I tipi di lock sono i seguenti:
1. adLockReadOnly – valore 1: i dati possono essere solo letti. E’ il
valore di default;
2. adLockPessimistic – valore 2: i dati vengono bloccati quando
qualcuno inizia ad effettuare operazioni di modifica. Si garantisce così
un’assoluta integrità dei dati causando però di rallentamenti del
sistema;
3. adLockOptimistic – valore 3: viene creato un buffer temporaneo in
cui sono conservati gli aggiornamenti e le modifiche, mentre i dati
originali sono ancora accessibili agli altri utenti. La protezione dei dati
da modifiche di altri utenti avviene solo nel momento in cui viene
lanciato un comando di aggiornamento (Update).
Le pagine ASP - Cristina Fregni
CommandType: stabilisce come dovrà essere
valutato il parametro Source. Se si utilizza la
variabile adCmdTable si specifica che Source
assumerà il valore del nome di una tabella.
ASP non include tutte le costanti per l’oggetto
Recordset. Pertanto, per non doverle definire
ogni volta che sono necessarie, è conveniente
includere all’interno delle applicazioni il file
adovbs.inc, che contiene le definizioni per tutte
le costanti ADO. Per includerlo l’istruzione è:
<-- #include virtual=“/adovbs.inc” -->
Le pagine ASP - Cristina Fregni
Popolamento del Recordset
Per popolare di dati un Recordset, in alternativa
al metodo Open, si può invocare il metodo
Execute dell’oggetto Connection, che richiama il
codice di una query in linguaggio SQL:
NomeRecordset = NomeConnessione.Execute(“CodiceSQL”)
Un comando SQL di selezione ha la seguente
sintassi generale: SELECT Elenco Colonne
FROM Elenco Tabelle
[WHERE Condizione]
[ORDEY BY ElencoColonne]
Le pagine ASP - Cristina Fregni
Chiusura del Recordset
Terminato l’uso di una tabella Recordset,
l’oggetto deve essere chiuso e deallocato dalla
RAM del server:
NomeRecordset.Close
Set NomeRecordset = Nothing
Le pagine ASP - Cristina Fregni
Accesso ai campi del Recordset
Un oggetto Recordset indirizza un insieme di
righe/record che si può considerare una nuova
tabella derivata, formata da una collezione di
campi (Fields) accessibili con le sintassi
alternative:
NomeRecorset.Fields(“NomeColonna”)
oppure
NomeRecordset(“NomeColonna”)
All’apertura di una nuova tabella derivata, il record
attivo è sempre il primo.
Le pagine ASP - Cristina Fregni
Navigazione in un Recordset
E’ possibile muoversi in una tabella derivata,
spostando il record attivo (cursore) mediante le
proprietà e i metodi di seguito descritti.
Metodo/Proprietà
Consente di…
MoveFirst
spostarsi all’inizio di una tabella
MoveLast
Move + | - Posizioni
spostarsi alla fine di una tabella
muovere il record attivo di un numero di posizioni avanti o
indietro
MoveNext
muovere il record attivo di una posizione avanti
MovePrevious
muovere il record attivo di una posizione indietro
RecordCount
contare il numero di record presenti nella tabella
EOF (End Of File)
verificare se si è giunti alla fine della tabella. Proprietà = True
se il cursore si trova prima del primo record.
BOF (Before Of First) controllare
Le pagine ASP - Cristina Fregni
Proprietà = True
Quando ci si muove all’interno di un Recordset
occorre ricordare che:
Non si possono utilizzare i metodi MoveFirst,
Move +/– Posizioni e MovePrevious con il
CursorType di tipo adOpenForwardOnly.
Se entrambe le proprietà EOF e BOF hanno
valore True, significa che la tabella non
contiene alcun record.
Le pagine ASP - Cristina Fregni
Aggiornamento dei dati nel database
Per aggiornare i dati delle tabelle di un
database è possibile (in alternativa):
eseguire i comandi SQL: INSERT, UPDATE e
DELETE.
richiamare i metodi dell’oggetto RecordSet:
AddNew, Update e Delete.
Le pagine ASP - Cristina Fregni
Inserimento nuovi record
Per inserire nuovi record all’interno del database
si utilizzano due metodi dell’oggetto Recordset:
AddNew e Update.
Il metodo AddNew crea un nuovo record vuoto
alla fine del set di record. Tale record viene
aggiunto al database solo dopo aver invocato il
metodo Update.
Dopo l’invocazione del metodo AddNew, il nuovo
record diventa il corrente e tale rimane anche
dopo l’invocazione di Update.
Le pagine ASP - Cristina Fregni
Con un Recordset correttamente aperto, le
istruzioni da eseguire sono:
NomeRecordset.AddNew
NomeRecordset(“Colonna1”)= Valore1
NomeRecordset(“Colonna2”)= Valore2
…
NomeRecordset(“ColonnaN”)= ValoreN
NomeRecordset.Update
Le pagine ASP - Cristina Fregni
In alternativa è sempre possibile utilizzare il
codice SQL ed invocare il metodo Execute
dell’oggetto Connection:
Dim QueryIns, RecMod
QueryIns= “INSERT INTO Nome Tabella (Colonna1, Colonna2,…ColonnaN)
VALUES (Valore1, Valore2, … ValoreN)”
NomeConnessione.Execute QueryIns [, RecMod]
 Il codice SQL va racchiuso tra virgolette (“ ”), quindi per usare valori
stringa all’interno di un’altra espressione occorre usare l’apice (‘).
 Il parametro facoltativo RecMod restituisce il numero di record modificati
dall’interrogazione, quindi si può verificare se l’operazione di inserimento
è stata eseguita con successo. Per proseguire l’esecuzione del codice
anche in presenza di errori run-time, prima di eseguire la query è
necessario inserire l’istruzione: On Error Resume Next.
Le pagine ASP - Cristina Fregni
Aggiornamento record
L’aggiornamento di record esistenti consiste nel:
visualizzare il record da modificare attraverso
un form
apportare le modifiche necessarie
invocare il metodo
Update dell’oggetto
Recordset secondo la seguente sintassi:
NomeRecordset.Update
Le pagine ASP - Cristina Fregni
Utilizzando invece il codice SQL ed invocando il
metodo Execute dell’oggetto Connection, lo
script sarà: Dim QueryMod, RecMod
QueryMod= “UPDATE Nome Tabella
SET Colonna1= Valore1
[, …, ColonnaN = ValoreN]
[WHERE Condizione]”
NomeConnessione.Execute QueryMod [, RecMod]
Le pagine ASP - Cristina Fregni
Cancellazione record
Per cancellare un record si utilizza il metodo
Delete dell’oggetto Recordset. Questo metodo
cancella il record corrente ed è richiamato
secondo la seguente sintassi :
NomeRecordset.Delete
Nel caso in cui si desideri eliminare più record che
soddisfino un determinato criterio, si può usare il
linguaggio SQL: Dim QueryCanc, RecCanc
QueryCanc= “DELETE FROM Nome Tabella
[WHERE Condizione]”
NomeConnessione.Execute QueryCanc [, RecCanc]
Le pagine ASP - Cristina Fregni