Lezione 11: Creazione di Tabelle Dinamiche

Una funzione molto utilizzata delle Active Server Pages è l'abilità di creare, cancellare, recuperare e aggiornare informazioni all'interno dei databse. In questo corso utilizzeremo database di tipo Microsoft Access come sorgente di dati, perciò sarà importante che comprendiate alcuni fondamenti sui database.

Fausto Marinsalta

 

Cos'è una Tabella Dinamica?

La connesione con database è una delle caratteristiche chiave di Active Server Pages. Questo permette di creare tabelle dinamiche che vengono aggiornate ogni volta che una pagina viene richiamata. Durante questo corso, illustrerò varie tecniche per immagazzinare e richiamare dati da un database.

Strutture Base per l'accesso a una risorsa di dati

Prima di iniziare a interrogare i database, è necessario aggiungere alcuni comandi di base alle nostre conoscenze.

Innanzitutto, tutti gli scripts Server-Side devono inclusi nei tag <% %> o <script RUNAT=Server></script>. Dovete specificare RUNAT=Server affinchè il motore ASP processi gli scripts.

Se non specificate RUNAT=Server, il motore ASP assumerà

che lo script intenda essere lanciato nel client. Potete specificare anche Language=[VBScript|JavaScript]. Se non specificate un linguaggio, verrà utilizzato il linguaggio di default settato nel server web. Potete utilizzare entrambi i linguaggi nel server, finchè gli scripts sono racchiusi all'interno dei loro blocchi <script></script>. Durante il corso utilizzerò VBScript, con lo scopo di semplificare l'apprendimento. Verranno utilizzati anche i tags <%%>, poichè useremo il linguaggio di default settato sul server.

Per chi di voi non ha familiarità con il linguaggio SQL, una breve introduzione di ogni tipo di query precederà il suo utilizzo. Perciò, la sintassi per una interrogazione SQL di tipo SELECT, la quale restituisce dei records da una sorgente di dati, sarà la seguente:

 

SELECT nomecampo[,nomecampo,...] FROM nometabella

 

Come potete vedere, è possibile specificare qualsiasi numero di campi che devono essere restituiti dalla tabella, separati da virgole. Se volete selezionare tutti i campi di una tabella, utilizzate un asterisco (*) al posto dei nomi dei campi.

Per connettersi alla sorgente di dati, è necessario creare un oggetto di connessione e un oggetto di tipo recordset. Nel seguente esempio illustrerò la prima tecnica per connettersi alla nostra sorgente di dati. Una volta che la connessione è stabilita, verà generata una tabella dinamica.

Listato 3.1

<html>

<head><title>Report 1</title>

</head>

<body>

<table border="1">

<tr>

    <td>ID Studente</td>

    <td>Esame 1</td>

    <td>Esame 2</td>

    <td>Esame 3</td>

    <td>Finale</td>

</tr>

<%

'qui inizia lo script lato sever

Set cn = Server.CreateObject("ADODB.Connection")

Set rs = Server.CreateObject("ADODB.RecordSet")

cn.Open "asp101"

 

'Ora, componiamo la stringa SQL di interrogazione. Potete

'estendere una stringa su più di una linea utilizzando

'il carattere "_"

 

sql="SELECT SID, Esame1, Esame2, Esame3, Finale " & _

     "FROM Valutazioni " & _

     "ORDER BY SID"

 

'Ora è il momento di eseguire la nostra interrogazione.

rs.Open sql, cn

 

'itera attraverso il recordset finchè

'non viene raggiunta la fine del file (EOF)

do while not rs.EOF

%>

<tr>

    <%

    'scrivi il valore di un determinato campo nel

    ' record corrente

    %>

    <td> <%Response.Write rs("SID")%> </td>

    <td> <%Response.Write rs("Esame1")%> </td>

    <td> <%Response.Write rs("Esame2")%> </td>

    <td> <%Response.Write rs("Esame3")%> </td>

    <td> <%Response.Write rs("Finale")%> </td>

</tr>

<%

   ' spostati sul prossimo record

   rs.MoveNext

loop

 

' chiudi gli oggetti recordset e connection

rs.Close

cn.Close

 

' libera le risorse

Set rs = nothing

Set cn = nothing

%>

</table>

</body>