le pagine asp (active server pages). le pagine asp - cristina fregni tecnologie di script...

59
LE PAGINE ASP (Active Server Pages)

Upload: bonfilia-moro

Post on 02-May-2015

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

LE PAGINE ASP

(Active Server Pages)

Page 2: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

Le pagine ASP - Cristina Fregni

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.

Page 3: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

Le pagine ASP - Cristina Fregni

Script lato client

1. il browser richiede una pagina al server2. il server invia la pagina al browser3. il browser invia la pagina al motore di script4. il motore interpreta ed esegue lo script5. il browser visualizza la pagina

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:

Page 4: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

Le pagine ASP - Cristina Fregni

Script lato server

1. il browser richiede una pagina al server2. il server invia lo script al motore3. il motore interpreta ed esegue lo script4. il server invia la pagina di risposta al browser in formato HTML5. il browser visualizza la pagina

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:

Page 5: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

Le pagine ASP - Cristina Fregni

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.

Page 6: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

Le pagine ASP - Cristina Fregni

Caratteristiche delle ASPhanno estensione .aspsono integrate con i file HTML i tag <% e %> racchiudono la parte di codice

che deve essere elaborata dal servernon necessitano di compilazionesono 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).

Page 7: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

Le pagine ASP - Cristina Fregni

GLI OGGETTI INTERNI DI ASP

RESPONSEPermette di inviare informazioni dal server web al browser client e di controllare come tali informazioni vengono inviate.

REQUESTSi usa per accedere alle informazioni passate dal browser del client al server web.

SESSIONE’ usato per definire uno spazio di memoria nel server associato a ogni singola sessione http di un utente.

APPLICATIONRappresenta un’area di memoria centrale condivisa tra tutti i client e le applicazioni in esecuzione in un sito web.

SERVERFornisce una serie di metodi necessari per accedere alle risorse del server.

ASPERRORConsente di ottenere informazioni sugli errori degli script all’interno delle pagine.

Page 8: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

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

Page 9: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

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

Page 10: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

Le pagine ASP - Cristina Fregni

L’oggetto REQUESTSi 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

Page 11: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

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

Page 12: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

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.

Page 13: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

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

Page 14: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

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.

Page 15: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

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

Page 16: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

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

Page 17: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

Le pagine ASP - Cristina Fregni

L’oggetto ASPErrorE' 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

Page 18: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

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.

Page 19: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

Le pagine ASP - Cristina Fregni

VariabiliPer 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.

Page 20: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

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.

Page 21: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

Le pagine ASP - Cristina Fregni

Operatori

MATEMATICI

+ , - , * , /

\ (per la divisione intera)

MOD (per il resto della divisione intera)

& (concatenazione)

DI CONFRONTO= , <> , < , > , <= , >=

LOGICIAnd, Or, Not, Xor

Esempio n. 3

Page 22: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

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 istruzioniElse istruzioni alternativeEnd If

Esempio n. 4

Page 23: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

Le pagine ASP - Cristina Fregni

Struttura di scelta multiplaEsegue 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 alternativeEnd SelectEsempio n. 5

Page 24: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

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 istruzioniLoop

Esempio n. 6 Esempio n. 7

Do istruzioniLoop Until condizione

Page 25: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

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] istruzioniNext

Esempio n. 8

Page 26: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

Le pagine ASP - Cristina Fregni

Le CollectionUna 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 illimitatosono 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.

Page 27: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

Le pagine ASP - Cristina Fregni

La tabella seguente schematizza le proprietà e i metodi più frequenti per l’elaborazione di Collections:

Per… si utilizza…

inserire un nuovo elemento

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 dell’insieme

il costrutto: For Each Oggetto In NomeCollection

elaborazione elemento

Next

Page 28: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

Le pagine ASP - Cristina Fregni

I CookiesUn 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.

Page 29: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

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.

Page 30: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

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”)] = ValoreEsempio n. 9

Esempio n. 10

Per leggere dati da un cookie, invece, si utilizza la seguente istruzione:Variabile = Request.Cookies(“NomeCookie”)[(“Chiave”)]

Page 31: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

Le pagine ASP - Cristina Fregni

Accesso ai DataBaseLa 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

Page 32: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

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)

Page 33: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

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.

Page 34: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

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.

Page 35: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

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.

Page 36: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

Le pagine ASP - Cristina Fregni

ADOOLEDB

ODBC

Driver del

DBMS Database

Server Web

Computerclient

Richiesta pagina ASP

Esecuzione script che

richiede accesso a un database

www.sitoweb.com

Restituzione dei risultati delle operazioni sui dati

Schema delle Interfacce software per l’accesso a un database mediante una pagina ASP

Page 37: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

Le pagine ASP - Cristina Fregni

GLI OGGETTI DI ADO

CONNECTIONPermette di stabilire la connessione all’origine dei dati. E’ il primo passo per potersi collegare ai database per utilizzarli.

RECORDSETConsente 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.

ERRORRappresenta 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.

PARAMETERLa collection Parameters contiene i parametri necessari al comando. Tali parametri sono memorizzati all’interno di questo oggetto.

Page 38: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

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”)

Page 39: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

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.

Page 40: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

Le pagine ASP - Cristina Fregni

Aprire la connessioneDopo 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.

Page 41: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

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

Page 42: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

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

Page 43: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

Le pagine ASP - Cristina Fregni

L’accesso ai dati del DataBasePer 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”)

Page 44: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

Le pagine ASP - Cristina Fregni

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

Apertura del Recordset

Page 45: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

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.

Page 46: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

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).

Page 47: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

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” -->

Page 48: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

Le pagine ASP - Cristina Fregni

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]

Popolamento del Recordset

Page 49: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

Le pagine ASP - Cristina Fregni

Terminato l’uso di una tabella Recordset, l’oggetto deve essere chiuso e deallocato dalla RAM del server:

NomeRecordset.Close

Set NomeRecordset = Nothing

Chiusura del Recordset

Page 50: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

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”)

oppureNomeRecordset(“NomeColonna”)

All’apertura di una nuova tabella derivata, il record attivo è sempre il primo.

Page 51: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

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 spostarsi alla fine di una tabella

Move + | - Posizioni 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

BOF (Before Of First) controllare se il cursore si trova prima del primo record. Proprietà = True

Page 52: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

Le pagine ASP - Cristina Fregni

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.

Quando ci si muove all’interno di un Recordset occorre ricordare che:

Page 53: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

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.

Page 54: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

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.

Page 55: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

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

Page 56: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

Le pagine ASP - Cristina Fregni

Dim QueryIns, RecMod

QueryIns= “INSERT INTO Nome Tabella (Colonna1, Colonna2,…ColonnaN)

VALUES (Valore1, Valore2, … ValoreN)”

NomeConnessione.Execute QueryIns [, RecMod]

In alternativa è sempre possibile utilizzare il codice SQL ed invocare il metodo Execute dell’oggetto Connection:

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.

Page 57: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

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

Page 58: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

Le pagine ASP - Cristina Fregni

Dim QueryMod, RecMod

QueryMod= “UPDATE Nome Tabella

SET Colonna1= Valore1

[, …, ColonnaN = ValoreN]

[WHERE Condizione]”

NomeConnessione.Execute QueryMod [, RecMod]

Utilizzando invece il codice SQL ed invocando il metodo Execute dell’oggetto Connection, lo script sarà:

Page 59: LE PAGINE ASP (Active Server Pages). Le pagine ASP - Cristina Fregni TECNOLOGIE DI SCRIPT Lintegrazione di HTML con CSS e linguaggi di scripting, come

Le pagine ASP - Cristina Fregni

Cancellazione recordPer 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]