Informatica 2 (Indirizzo WEB) A.A. 2007-08 Esercitazione n. 8: Connessione ASP ad una base di dati Access Scopo: Scrivere una pagina Web, che richiede la visualizzazione di una base di dati, e scrivere una pagina ASP che si connette alla base di dati, e visualizza i risultati Passo 1 Create una cartella col vostro cognome all'interno della cartella C:\informatica\informatica2. Tutti i file che creerete dovranno trovarsi in questa cartella. Passo 2 Scrivete una pagina Web " richiesta.html", che contiene solo un modulo con un bottone di tipo SUBMIT, con valore "visualizza i dati". L'attributo ACTION della form deve essere ACTION="visualizzaTutti.asp", e l'attributo METHOD deve essere POST <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <HEAD> <TITLE>richiesta dati</TITLE> <META CONTENT="text/html; charset=iso-8859-1" HTTP-EQUIV="Content-type"> </HEAD> <BODY> <FORM ACTION="visualizzaTutti.asp" METHOD="POST"> <INPUT TYPE="SUBMIT" VALUE="visualizza i dati"> </FORM> </BODY> </HTML> Passo 3 Scrivete o recuperate una base di dati Access. Supponiamo, per esempio, che la base di dati si chiami studenti.mdb, che essa contenga una tabella che si chiami tabellaStudenti, i cui campi sono nome, cognome, matricola. Qualunque differenza rispetto a queste ipotesi va adattata nella pagina seguente. La base di dati Access va copiata nella stessa cartella della pagina precedente. Aprite le proprietà del database (tasto destro sull'icona del file), linguetta "Protezione", e assicuratevi che che l'utente "SYSTEM" abbia i permessi per leggere e scrivere sul database. (Se così non fosse, aggiungete l'utente SYSTEM e spuntate la casella “Controllo completo”). Passo 4 Scrivete un file dal nome "visualizzaTutti.asp", nella stessa cartella del file precedente, con i comandi riportati sul retro. Se la vostra base di dati ha nomi del file, della tabella, dei campi, diversi da quelli supposti prima, adattate la pagina dove necessario. Passo 5 Provate ad aprire la vostra pagina da Internet Explorer o da Mozilla Firefox. Il percorso da digitare nella barra degli indirizzi è il seguente: http://localhost/cognome/richiesta.html dove cognome va sostituito con la cartella col vostro cognome. <%@ LANGUAGE = JavaScript%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <HEAD> <TITLE>visualizza tabella</TITLE> <META CONTENT="text/html; charset=iso-8859-1" HTTP-EQUIV="Content-type"> </HEAD> <BODY> <TABLE BORDER="1"> <THEAD> <TR> <TH>Nome</TH> <TH>Cognome</TH> <TH>Matricola</TH> </TR> </THEAD> <% // definisci la stringa di connessione var driverString = "DRIVER={Microsoft Access Driver (*.mdb)}; "; var databaseString = "DBQ=" + Server.MapPath("./studenti.mdb") + ";"; var connString = driverString + databaseString; // apri la connessione al database var adoConnection = Server.CreateObject("ADODB.Connection"); adoConnection.Open(connString); // definisci la query SQL var mySQL = "SELECT nome,cognome,matricola FROM tabellaStudenti"; // riempi un recordset con i dati della tabella var adoRecordSet; adoRecordSet = adoConnection.Execute(mySQL); // trova eventuali errori if ( adoConnection.Errors.Count > 0 ) { Response.Write("Errore di connessione: "); Response.Write( adoConnection.Errors(0).Description); } else { // scandisci i record e trascrivi i dati sulla pagina html while ( adoRecordSet.Eof == false ) { %> <TR> <TD><%=adoRecordSet("nome").Value%></TD> <TD><%=adoRecordSet("cognome").Value%></TD> <TD><%=adoRecordSet("matricola").Value%></TD> </TR> <% adoRecordSet.MoveNext(); } } // chiudi il recordset e la connessione adoRecordSet.Close(); adoConnection.Close(); // e rilascia la memoria occupata da recordset e connessione adoRecordSet = null; adoConnection = null; %> </TABLE> </BODY> </HTML>