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