Il linguaggio ASP Lezione 3 La connessione al database con ASP Gli oggetti CONNECTION e RECORDSET Il linguaggio ASP Come è facile rendersi conto, l’importanza di linguaggi dinamici come ASP è fondamentale per poter costruire un sito che non si limiti a rendere visibili delle informazioni. Infatti spesso, nella realizzazione di un sito, abbiamo la necessità di interagire con gli utenti, di permettergli di operare in maniera attiva, di lasciarci dei messaggi, di selezionarli, ecc. Il linguaggio ASP ASP ci permette tutto ciò in quanto è in grado di interagire con i database, anche qui grazie agli oggetti ADO. Analizzeremo dapprima l’accesso al database ed il suo output. Vedremo più in seguito come interagire completamente utilizzando gli strumenti per l’input dei dati costituiti dai form. Il linguaggio ASP La connessione con i database Anche con ASP la connessione con un database passa attraverso tre passaggi: - la creazione dell’oggetto CONNECTION; - la generazione della stringa di connessione; - l’apertura della connessione. Analizziamole singolarmente. Il linguaggio ASP La creazione dell’oggetto CONNECTION La sintassi per la creazione di un nuovo oggetto CONNECTION con ASP è la seguente: Set nomeconn = server.createobject("adodb.connection") dove nomeconn è il nome che intendiamo assegnare al nostro oggetto CONNECTION. Il linguaggio ASP La generazione della stringa di connessione La stringa di connessione ha in ASP la stessa funzione che ha in Visual Basic ed ha la stessa sintassi con un’unica differenza. Infatti, poiché stiamo potenzialmente lavorando su un server, l’indirizzo del nostro database non può essere fornito come indirizzo assoluto, come abbiamo gatto utilizzando il Visual Basic, ma va fornito come indirizzo relativo. In ASP possiamo utilizzare la funzione server.mappath che, avuto in input il nome dell’oggetto, è in grado di fornircene l’indirizzo relativo. Il linguaggio ASP La generazione della stringa di connessione La stringa di connessione diventa quindi la seguente: "provider=microsoft.jet.oledb.4.0; data source= ‘“ & server.mappath("esempio.mdb") & “‘“ Come vedete componiamo la stringa utilizzando la funzione server.mappath con il nome del nostro database (Quelli indicati dalle frecce e colorati in giallo sono apici). Esempio.mdb è, ovviamente il nome del database al quale vogliamo accedere. Il linguaggio ASP La generazione della stringa di connessione La stringa di connessione può anche qui essere assegnata ad una variabile stringa. Esempio: strconn = "provider = […] “ dove strconn è il nome della variabile stringa che intendiamo utilizzare. Il linguaggio ASP L’apertura della connessione Anche in ASP l’apertura della connessione si ottiene richiamando il metodo OPEN dell’oggetto connection seguito dal nome della variabile che contiene la stringa di connessione: nomeconn.open strconn dove nomeconn è il nome assegnato alla connessione e strconn è la variabile utilizzata per memorizzare la stringa di connessione. Il linguaggio ASP La chiusura della connessione Anche qui, quando la connessione non è più necessaria è opportuno chiuderla, utilizzando il metodo CLOSE dell’oggetto connection: nomeconn.close dove nomeconn è il nome assegnato alla connessione. Il linguaggio ASP La connessione al database - Esempio Si consideri a titolo di esempio di connessione il seguente codice: <% set dbutenti=server.createobject("adodb.connection") stringa="provider=microsoft.jet.oledb.4.0; data source='"& server.mappath("esempio.mdb") & "'" dbutenti.open stringa dbutenti.close %> Ovviamente è propedeutica la creazione del database “esempio.mdb” richiesto dalla stringa di connessione. Il linguaggio ASP L’oggetto RECORDSET Anche in ASP, come in VB l’accesso al database avviene con l’utilizzo dell’oggetto RECORDSET, che permette di definire il gruppo di record del database su cui lavorare. L’utilizzo dell’oggetto RECORDSET è molto semplice e si articola in tre fasi principali: - la creazione dell’oggetto RECORDSET; - l’apertura del recordset; - la chiusura del recordset a fine operazioni. Il linguaggio ASP La creazione dell’oggetto RECORDSET La sintassi per la creazione di un nuovo oggetto RECORDSET con ASP , analogamente all’oggetto CONNECTION, è la seguente: Set nomerecordset = server.createobject("adodb.recordset") dove nomerecordset è il nome che intendiamo assegnare al nostro oggetto RECORDSET. Il linguaggio ASP L’apertura del RECORDSET L’apertura del recordset in ASP avviene tramite il richiamo del metodo OPEN sull’oggetto, seguito dalla stringa SQL che si intende eseguire sul database e dal nome della connessione attiva. La sintassi completa è dunque la seguente: nomerecordset.open SQL, nomeconn dove nomerecordset è il nome del nostro oggetto RECORDSET, SQL è la stringa SQL da eseguire e nomeconn è il nome della connessione aperta. Il linguaggio ASP La chiusura del recordset Anche qui, quando il recordset non è più necessario è opportuno chiuderlo, utilizzando il metodo CLOSE dell’oggetto recordset: nomerecordset.close dove nomerecordset è il nome assegnato al nostro oggetto recordset. Il linguaggio ASP Il recordset - Esempio Si consideri a titolo di esempio di generazione del recordset il seguente codice: <% Set recset=server.createobject("adodb.recordset") stringasql=“select * from TABELLA” recset.open stringasql, dbutenti recset.close %> Ovviamente è propedeutica l’apertura della connessione (nell’esempio chiamata dbutenti). Nell’esempio TABELLA è il nome di una tabella presente nel nostro database. Il linguaggio ASP Il recordset – Esercitazione conclusiva Proviamo adesso a realizzare una pagina ASP che ci permetta di aprire la connessione al nostro database visualizzando il contenuto di una tabella. Utilizzeremo, anche qui, la struttura di controllo di ripetizione precondizionale associata alla funzione EOF del recordset e alla collezione FIELDS con le sue proprietà. Possiamo fare riferimento, per questi concetti alle conoscenza, già acquisite, relative al VB, in quanto analoghe.