SOLUZIONE SECONDA PROVA INFORMATICA ITC ESAME DI STATO 2002/2003 TRAMONTANA



Documenti analoghi
Caratteristiche dell'applicativo da utilizzare Schema generale della procedura e organizzazione dei dati

Volumi di riferimento

Simulazione seconda prova Esame di Stato Sito Web - Gestione di un centro agroalimentare all ingrosso (Parte seconda)

1. Schema concettuale della base di dati Lo schema concettuale (o statico) è uno dei due schemi del progetto concettuale di un sistema informativo.

Esame di Stato Istituto Tecnico Industriale Soluzione della Seconda Prova Indirizzo: INFORMATICA Tema: INFORMATICA Anno Scolastico:

19. LA PROGRAMMAZIONE LATO SERVER

La progettazione di un database non ha un unica soluzione. Quella proposta può essere quindi variata in base all esperienza del programmatore.

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

1. Schema concettuale della base di dati PROGETTO CONCETTUALE SCHEMA ER

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

Accesso a basi di dati con ASP. Algoritmo per visualizzare un DB

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

VBScript. VBScript. Visual Basic Scripting Edition. Linguaggio di script per browser e server Microsoft Deriva da Visual Basic, ma è interpretato

ISTITUTO TECNICO ECONOMICO MOSSOTTI

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro) ESERCIZIO 3

Documentazione del progetto Classe 5 Cp A.s. 2011/2012

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

I Sistemi Informativi

GESTIONE DI MDB in WEB

Lezione V. Aula Multimediale - sabato 29/03/2008

ASP: ESERCIZI E SOLUZIONI

ASP: DOMANDE E RISPOSTE (Q&A)

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

User Tools: DataBase Manager

PROGRAMMAZIONE MODULARE DI INFORMATICA CLASSE QUINTA - INDIRIZZO MERCURIO SEZIONE TECNICO

Il database management system Access

SOSEBI PAPERMAP2 MODULO WEB MANUALE DELL UTENTE

Una metodologia di progettazione di applicazioni web centrate sui dati

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

ALICE AMMINISTRAZIONE UTENTI WEB

La tecnologia ASP.NET e i database

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

INFORMATICA PER LE APPLICAZIONI ECONOMICHE PROF.SSA BICE CAVALLO

Data Base in Internet

Raggruppamenti Conti Movimenti

Lo scenario: la definizione di Internet

Database e reti. Piero Gallo Pasquale Sirsi

capitolo 8 LA CHECKLIST PER LA VALUTV ALUTAZIONEAZIONE TECNOLOGICA

ITI M. FARADAY Programmazione modulare a.s

Definizione di domini

Informatica per le discipline umanistiche 2 lezione 10

Sviluppata da: Lo Russo - Porcelli Pag. 1 di 6 6FRSR utilizzare il DBMS Postgresql per imparare il linguaggio SQL.

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

I.T.C. Mario Pagano Napoli

Le Basi di Dati. Le Basi di Dati

Dispensa di database Access

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:

A.S. 2014/2015- Programma svolto di INFORMATICA ITCG E. Fermi Tivoli classe V C SIA. Programma svolto di. Informatica. classe VC S.I.A a.s.

ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 2

Dal protocollo IP ai livelli superiori

Lezione II: Web server e ambiente di lavoro

I database relazionali (Access)

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione

Direzione Centrale per le Politiche dell Immigrazione e dell Asilo

Esame Di Stato A.S. 2004/2005 Istituto Tecnico Commerciale Corso Sperimentale Progetto Mercurio Corso di Ordinamento - Programmatori

Descrizione generale del sistema SGRI

PROGRAMMA DI CLASSE 5AI

La VPN con il FRITZ!Box Parte I. La VPN con il FRITZ!Box Parte I

Web Programming Specifiche dei progetti

PROGRAMMA DI INFORMATICA CLASSE quinta ANNO SCOLASTICO 2012/2013

Archivi e Basi di Dati

Corso di Laboratorio di Basi di Dati

PROGRAMMA CONSUNTIVO

capitolo 4 L ORGANIZZAZIONE DELLA VALUTV ALUTAZIONEAZIONE

1) Il client(browser utilizzato) invia al server i dati inseriti dall utente. Server

UTILIZZO DEL SOFTWARE MONITOR

Capitolo 4 Pianificazione e Sviluppo di Web Part

Installazione e caratteristiche generali 1

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati

DBMS (Data Base Management System)

SQL Server Introduzione all uso di SQL Server e utilizzo delle opzioni Olap. Dutto Riccardo - SQL Server 2005.

Introduzione ai database relazionali

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati

Esercizio data base "Biblioteca"

DATABASE RELAZIONALI

SQL Server. SQL server e un RDBMS di tipo client/server che utilizza Transact-SQL per gestire la comunicazione fra un client e SQL Server

PROGRAMMAZIONE MODULARE. Periodo mensile. Ore previste

Corso di Informatica Generale 1 IN1. Linguaggio SQL

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER

Progettazione Web Applicazioni client-server

Si tratta di un programma per la gestione della messaggistica ( , pec, posta interna, spedizione fax).

Gestione di un magazzino: sviluppo di un applicazione web-database

Organizzazione delle informazioni: Database

GERARCHIE RICORSIVE - SQL SERVER 2008

INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro)

ISTITUTO TECNICO ECONOMICO AMBROGIO FUSINIERI VICENZA PROGRAMMAZIONE ATTIVITA' DIDATTICA A.S MATERIA: TECNOLOGIE DELLA COMUNICAZIONE

Corso Sistemi Informativi Avanzati. Programma 30 set Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende.

Faber System è certificata WAM School

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

Il web server Apache Lezione n. 3. Introduzione

Basi di Dati: Corso di laboratorio

Trasformazione DB Access In SQL Server. Michele De Nittis

DATABASE MASTER (SEDE PRINCIPALE)

TEST FINALE SUI 7 MODULI SPIEGATI NEL NOSTRO PON 2014 Digito per comunicare ITC L. Da Vinci S. Maria C. V. (CE)

SPSS Statistics per Windows - Istruzioni di installazione per (Licenza per utenti singoli)

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Transcript:

Esame di Stato Istituto Tecnico Commerciale CORSO SPERIMENTALE Progetto "MERCURIO" Indirizzo: PROGRAMMATORI Soluzione della Seconda Prova - Tema di: INFORMATICA Anno Scolastico: 2002-2003 Riflessioni e apparecchiature necessarie L aumento del numero di computer e degli utenti connessi a Internet causa due sostanziali problematiche: l aumento degli indirizzi IP e dei corrispondenti gruppi di nomi di dominio assegnati; l aumento del traffico nelle backbone dorsali della Rete. Il primo problema è stato parzialmente risolto con l assegnazione di gruppi limitati di indirizzi IP pubblici con subnet mask binarie, invece di assegnare gruppi di 256 indirizzi alla volta come con le subnet mask decimali. Un ulteriore soluzione, in fase di studio e sperimentazione nel protocollo IPv6, prevede l'aumento del numero di bit degli indirizzi IP da 32 a 64, con il conseguente aumento degli indirizzi disponibili a 2 64. L aumento del traffico in Internet deve essere risolto a livello dei sottosistemi di telecomunicazione, che devono garantire velocità di trasmissione in bps e bande di frequenza sempre maggiori. Esempi di queste nuove infrastrutture sono le linee ADSL e le reti ATM, quest ultime impiegate nella costruzione dei nodi delle reti a commutazione di pacchetto sia di Internet sia delle reti telefoniche digitali. I principali servizi di Internet utili per le soluzioni per l e-commerce sono: il World Wide Web WWW o semplicemente Web, la posta elettronica, il trasferimento dei file FTP e l accesso ai database. Per rendere visibile un computer in Internet è necessario disporre di uno oppure più indirizzi IP pubblici, ai quali è associato un nome di dominio di secondo livello del tipo, ad esempio, azienda.com. Ogni indirizzo IP pubblico è quindi associato a un computer server che offre uno oppure più servizi. Ad esempio, il computer www.azienda.com può offrire i servizi WWW e FTP, mentre il server mail.azienda.com, può offrire i servizi di posta elettronica. L accesso ad una oppure più basi di dati può essere garantito installando un server di database nella rete privata dell'azienda, che può anche coincidere con lo stesso server Web. Le apparecchiature hardware necessarie per offrire servizi on-line per Internet sono: server Web e di database, realizzati con computer di classe server di elevate prestazioni, in termini di CPU, RAM e velocità degli hard disk; un router, che permetta la connessione di tutta la rete di un azienda intranet alla Rete, con indirizzi IP privati, impiegando un indirizzo IP pubblico; una connessione permanente a Internet con una banda garantita e quindi velocità di trasmissione elevate ad esempio, 1-2 Mbps, realizzata ad esempio con una linea ADSL non commutata; un firewall, per garantire la protezione dagli attacchi esterni di persone non autorizzate da Internet cracker nell intranet dell azienda. 2007 RCS Libri S.p.A. Divisione Education 1 CORSI ON-LINE

Caratteristiche dell'applicativo da utilizzare Per sviluppare il servizio on- line dell'istituto sono necessari i programmi per realizzare un server Web e un server di database. Per il servizio WWW, è necessario installare in un computer di classe server un programma di sistema quale, ad esempio, Apache per i server UNIX/Linux oppure IIS per i server Windows 2000. Per realizzare un server di database, è necessario installare un RDBMS Relational DataBase Management System in grado di permettere la realizzazione dello schema logico relazionale della base di dati e automatizzare le sue procedure di gestione. Il server di database può essere un computer autonomo della rete aziendale oppure coincidere con il server Web. L accesso ai dati è realizzato sviluppando alcune pagine da inserire nel sito Web che permettono di eseguire interrogazioni sul server di database e presentare agli utenti i risultati mediante pagine HTML dinamiche di risposta. Le pagine di accesso ai dati contengono degli script server-side eseguiti dal server che aprono connessioni al server di database, eseguono query anche con parametri di ingresso e presentano i risultati agli u- tenti generando pagine HTML dinamiche. Nel seguito, utilizzeremo Access come RDBMS, mentre per realizzare l accesso ai dati seguiremo la tecnologia ASP basata sul linguaggio di scripting VBScript. Schema generale della procedura e organizzazione dei dati Per la realizzazione on-line dei servizi dell Istituto possiamo pensare al seguente progetto concettuale e schema logico relazionale del database, che soddisfa le forme normali. PROGETTO CONCETTUALE SCHEMA ER Lo schema ER deve seguire queste regole. R1. Lo schema precedente permette di gestire qualsiasi tipo di Test, che nel nostro caso potrebbero essere codificati con Codice="TING-1", per i test di ingresso del Corso con Codice="CORSO1", e Codice del Test uguale a "TFIN -1", per il test finale del corso "CORSO1". R2. L attributo Valutazione di un Risultato memorizza un numero reale con la percentuale di risposte esatte sul totale con cui un allievo ha effettuato un test d ingresso per un determinato corso ad esempio 78,67, rappresentato in percentuale 78,67%. R3. L attributo Codice di una Domanda è un numero intero scelto manualmente dall operatore. R4. L attributo RispostaEsatta di una Domanda è un numero intero che rappresenta il numero da 1 a 4 della risposta corretta. 2007 RCS Libri S.p.A. Divisione Education 2 CORSI ON-LINE

REALIZZAZIONE SCHEMA LOGICO RELAZIONALE Lo schema logico relazionale rispetta le forme normali ed è soggetto a questi vincoli di integrità referenziale. V1. La chiave esterna Corso della tabella ComposizioneCorsi è in relazione con la tabella Corsi mediante la chiave primaria Codice. V2. La chiave esterna Allievo della tabella ComposizioneCorsi è in relazione con la tabella Allievi mediante la chiave primaria Codice. V3. La chiave esterna Allievo della tabella Risultati è in relazione con la tabella Allievi mediante la chiave primaria Codice. V4. La chiave esterna Test della tabella Risultati è in relazione con la tabella Test mediante la chiave primaria Codice. V5. La chiave esterna Test della tabella ComposizioneTest è in relazione con la tabella Test mediante la chiave primaria Codice. V6. La chiave esterna Domanda della tabella ComposizioneTest è in relazione con la tabella Domande mediante la chiave primaria Codice. CODIFICA Lo schema logico del database può essere realizzato in Access in alternativa. In modo interattivo, definendo le singole tabelle di base e impostando le relazioni. Nella modalità programma, eseguendo nell ordine i quattro script SQL, documentati nella tabella che segue. Il database può essere memorizzato nel file DBCorsiOnLine.mdb. La sintassi standard SQL è stata adattata a quella implementata in Access. Tabelle di base Codice SQL nella modalità Nome query: CreaTabellaCorsi CREATE TABLE Corsi Codice CHAR6, Descrizione CHAR100 NOT NULL, DataInizio DATE NOT NULL, DataFine DATE NOT NULL, PRIMARY KEYCodice Nome query: CreaTabellaAllievi CREATE TABLE Allievi Codice CHAR6, Cognome CHAR20 NOT NULL, Nome CHAR20 NOT NULL, Telefono CHAR15 NOT NULL, Email CHAR30, PRIMARY KEYCodice 2007 RCS Libri S.p.A. Divisione Education 3 CORSI ON-LINE

Tabelle di base Codice SQL nella modalità Nome query: CreaTabellaComposizioneCorsi CREATE TABLE ComposizioneCorsi Allievo CHAR6, Corso CHAR6, Livello INTEGER, SuperatoTestFinale BIT, PRIMARY KEYAllievo, Corso, FOREIGN KEYCorso REFERENCES CorsiCodice, FOREIGN KEYAllievo REFERENCES AllieviCodice Nome query: CreaTabellaDomande CREATE TABLE Domande Codice INTEGER, Quesito CHAR255 NOT NULL, Risposta1 CHAR100 NOT NULL, Risposta2 CHAR100 NOT NULL, Risposta3 CHAR100 NOT NULL, Risposta4 CHAR100 NOT NULL, RispostaEsatta INTEGER NOT NULL, PRIMARY KEYCodice Nome query: CreaTabellaTest CREATE TABLE Test Codice CHAR6, Descrizione CHAR255 NOT NULL, PRIMARY KEYCodice Nome query: CreaTabellaComposizioneTest CREATE TABLE ComposizioneTest Test CHAR6, Domanda INTEGER, PRIMARY KEYTest, Domanda, FOREIGN KEYTest REFERENCES TestCodice, FOREIGN KEYDomanda REFERENCES DomandeCodice Nome query: CreaTabellaRisultati CREATE TABLE Risultati Allievo CHAR6, Test CHAR6, Corso CHAR6, Valutazione DOUBLE, PRIMARY KEYAllievo, Test, Corso, FOREIGN KEYAllievo REFERENCES AllieviCodice, FOREIGN KEYTest REFERENCES TestCodice 2007 RCS Libri S.p.A. Divisione Education 4 CORSI ON-LINE

Lo schema logico relazionale del database in Access diventa quello che segue. Le interrogazioni sul database sono realizzate mediante questi codici sorgente SQL che devono essere eseguiti in un DBMS. Interrogazione: perfezionamento iscrizione Perfezionare l iscrizione di un allievo sulla base del risultato raggiunto al test inserimento del livello corrispondente. Dopo aver eseguito il test di ingresso on-line, una pagina di accesso ai dati memorizza il risultato colonna Valutazione raggiunto da un allievo nella tabella Risultati. Il perfezionamento dell iscrizione può essere quindi effettuato in modo interattivo sulla base della procedura seguente. 1. Verifica del risultato raggiunto da un allievo, noto il suo codice, eseguendo la seguente query parametrica di nome RisultatoAllievo. SELECT Risultati.Test, Risultati.Corso, Risultati.Valutazione FROM Allievi INNER JOIN Risultati ON Allievi.Codice = Risultati.Allievo WHERE Allievi.Codice= [Digita codice allievo] Nel codice SQL, [Digita codice allievo] è un parametro di ingresso il cui valore viene richiesto da Access prima dell esecuzione dell interrogazione con una finestra di dialogo di questo tipo. 2. Aggiornamento della tabella ComposizioneCorsi, inserendo il livello corrispondente al risultato ottenuto calcolato manualmente, con la seguente query UPDATE di nome ModificaLivello. UPDATE ComposizioneCorsi SET Livello = [Digita valore livello] WHERE Allievo=[Digita codice allievo] AND Corso = [Digita codice corso] L esecuzione della query di aggiornamento richiede all operatore il livello raggiunto parametro [Digita valore livello] da un allievo per un certo corso [Digita codice corso] e il suo codice parametro [Digita codice allievo], per poi effettuare la modifica nella riga corrispondente nella tabella ComposizioneCorsi. 2007 RCS Libri S.p.A. Divisione Education 5 CORSI ON-LINE

Ad esempio, possiamo ipotizzare la seguente corrispondenza tra il campo Valutazione raggiunto nel test tabella Risultati e la colonna Livello tabella ComposizioneCorsi: Valutazione minore del 60%, Livello=1; Valutazione maggiore o uguale al 60% e minore dell'80%, Livello=2; Valutazione maggiore o uguale dell'80%, Livello=3. In alternativa, in alcuni DBMS non in Access, è possibile effettuare le due operazioni precedenti in modo automatico associando alla tabella Risultati un trigger eseguito in risposta a ogni operazione di inserimento. Un trigger di inserimento è definito da uno script SQL, il cui codice è eseguito dal DBMS per ogni comando INSERT. Nel nostro progetto, lo script SQL del trigger si presenta con una forma del tipo seguente. Nel codice, Inserted rappresenta una tabella dinamica con la riga inserita nella tabella Risultati che provoca l esecuzione del trigger. La sintassi potrebbe essere differente nei diversi DBMS. CREATE TRIGGER ModificaLivello ON Risultati FOR INSERT IF SELECT Test FROM Inserted LIKE 'TING$' AND SELECT Valutazione FROM Inserted < 60.0 BEGIN UPDATE ComposizioneCorsi SET Livello = 1 WHERE Corso = SELECT Corso FROM Inserted AND Allievo = SELECT Allievo FROM Inserted END ELSE IF SELECT Test FROM Inserted LIKE 'TING$' AND SELECT Valutazione FROM Inserted >= 60.0 AND SELECT Valutazione FROM Inserted < 80.0 BEGIN UPDATE ComposizioneCorsi SET Livello = 2 WHERE Corso = SELECT Corso FROM Inserted AND Allievo = SELECT Allievo FROM Inserted END ELSE BEGIN UPDATE ComposizioneCorsi SET Livello = 3 WHERE Corso = SELECT Corso FROM Inserted AND Allievo = SELECT Allievo FROM Inserted END Interrogazione: elenco allievi Stampare l elenco degli allievi che hanno superato il test finale. Questo servizio può essere realizzato con la seguente interrogazione di nome ElencoAllievi. SELECT Allievi.Cognome, Allievi.Nome, Allievi.Telefono FROM Allievi INNER JOIN ComposizioneCorsi ON Allievi.Codice = ComposizioneCorsi.Allievo WHERE ComposizioneCorsi.Corso = [Digita codice corso] AND ComposizioneCorsi.SuperatoTestFinale = TRUE 2007 RCS Libri S.p.A. Divisione Education 6 CORSI ON-LINE

Realizzare le pagine Web idonee a gestire la somministrazione del test d'ingresso e l'eventuale interazione con la base di dati Questa operazione richiede la realizzazione di pagine di accesso ai dati del database DBCorsiOnLine. Nel seguito: ipotizzeremo che il server Web coincida con il server di database. Nel nostro progetto è sufficiente che nel server Web siano installati i driver per il RDBMS Access; useremo come tecnologia per la creazione di pagine di accesso ai dati l ASP basato sul linguaggio di scripting VBScript. Questa operazione può essere realizzata completando i seguenti passi operativi. 1. Creare una pagina Web, di nome RichiamaTest.htm, con un form in cui l allievo deve digitare il proprio codice, il codice del corso e quello del test che deve eseguire. Questa pagina HTML richiama la pagina ASP, EseguiTest.asp, che esegue una query nel database per ricercare le domande del test e visualizzarle in una nuova pagina HTML dinamica. I nomi delle caselle di testo sono quelli riportati nella figura precedente, mentre il form richiama la pagina EseguiTest.asp mediante la seguente struttura del tag doppio <FORM>, inserita nel corpo della pagina Web. <FORM METHOD="POST" ACTION="EseguiTest.asp"> </FORM> Pagina ASP EseguiTest.asp <%@ Language=VBScript %> <% Response.Buffer=True %> <HTML> <HEAD><TITLE>Esegui test d'ingresso</title></head> <BODY> <H3>Test d'ingresso</h3> <% Dim ConnessioneDB, rstabella, QuerySQL, Test, Allievo, Corso, i 'Apertura della connessione al database Set ConnessioneDB = Server.CreateObject"ADODB.Connection" ConnessioneDB.Open "DRIVER={Microsoft Access Driver *.mdb}; " &_ "DBQ=" & Server.MapPath"DBCorsiOnLine.mdb" 2007 RCS Libri S.p.A. Divisione Education 7 CORSI ON-LINE

'Raccolta dei dati digitati dall'utente nel browser Test = Request.Form"txtTest" Allievo = Request.Form"txtAllievo" Corso = Request.Form"txtCorso" 'Salvataggio dati in un cookie Response.Cookies"Dati""Test" = Test Response.Cookies"Dati""Allievo" = Allievo Response.Cookies"Dati""Corso" = Corso 'Definzione codice SQl della query per ricercare le domande di un test QuerySQL="SELECT Domande.* " &_ "FROM Domande INNER JOIN " &_ "Test INNER JOIN ComposizioneTest ON " &_ "Test.Codice = ComposizioneTest.Test " &_ "ON Domande.Codice = ComposizioneTest.Domanda " &_ "WHERE Test.Codice ='" & Test & "';" Set rstabella = ConnessioneDB.ExecuteQuerySQL 'Creazione di una pagina HTML dinamica con i test. 'Le domande sono individuate da un nome del tipo NAME=i, dove i e' il numero 'della domanda. Il test e' indipendente dal numero di domande memorizzato. 'Dopo la compilazione del test, la pagina richiama CalcolaRisultato.asp ' che effettua il calcolo del risultato raggiunto. %> <% If rstabella.bof=true And rstabella.eof=true Then %> <H4>Non ci dati disponibili!</h4> <% Else %> <FORM METHOD="POST" ACTION="CalcolaRisultato.asp"> <%i=1 Do until rstabella.eof%> <P><%=rsTabella.Fields"Quesito"%><BR> <%=rstabella.fields"risposta1"%> <INPUT TYPE="RADIO" NAME="<%=i%>" VALUE="1"><BR> <%=rstabella.fields"risposta2"%> <INPUT TYPE="RADIO" NAME="<%=i%>" VALUE="2"><BR> <%=rstabella.fields"risposta3"%> <INPUT TYPE="RADIO" NAME="<%=i%>" VALUE="3"><BR> <%=rstabella.fields"risposta4"%> <INPUT TYPE="RADIO" NAME="<%=i%>" VALUE="4"><BR> </P> <% i = i+ 1 rstabella.movenext %> <% Loop %> <P> <INPUT TYPE="SUBMIT" NAME="submit" VALUE="Invia le risposte del test"> </P> </FORM> <% End If %> <% rstabella.close : Set rstabella = Nothing ConnessioneDB.Close : Set ConnessioneDB = Nothing %> </BODY> </HTML> La pagina ASP produce un risultato del tipo descritto nella figura della pagina seguente. 2007 RCS Libri S.p.A. Divisione Education 8 CORSI ON-LINE

2. La pagina EseguiTest.asp richiama un altra pagina ASP, CalcolaRisultato.asp, che calcola il risultato raggiunto dall allievo nel test e, dopo avere visualizzato il risultato in una pagina HTML dinamica, aggiorna la tabella Risultati con la percentuale ottenuta nel test d ingresso. Pagina ASP CalcolaRisultato.asp <%@ Language=VBScript %> <% Response.Buffer=True %> <% Dim ConnessioneDB, rstabella, QuerySQL Dim Test, Allievo, Corso Dim i, RisposteOK, RispostaData, RecordModificati 'Apertura della connessione al database Set ConnessioneDB = Server.CreateObject"ADODB.Connection" ConnessioneDB.Open "DRIVER={Microsoft Access Driver *.mdb}; " &_ "DBQ=" & Server.MapPath"DBCorsiOnLine.mdb" 'Lettura dei dati memorizzati nei cookie. Test = Request.Cookies"Dati""Test" Allievo = Request.Cookies"Dati""Allievo" Corso = Request.Cookies"Dati""Corso" 'Definizione query SQL per la lettura della risposta esatta nel test scelto. QuerySQL="SELECT Domande.RispostaEsatta " &_ "FROM Domande INNER JOIN " &_ "Test INNER JOIN ComposizioneTest ON " &_ "Test.Codice = ComposizioneTest.Test " &_ "ON Domande.Codice = ComposizioneTest.Domanda " &_ "WHERE Test.Codice ='" & Test & "';" Set rstabella = ConnessioneDB.ExecuteQuerySQL 2007 RCS Libri S.p.A. Divisione Education 9 CORSI ON-LINE

'Calcolo del numero di risposte esatte. i=1 RisposteOK = 0 Do Until rstabella.eof RispostaEsatta=rsTabella.Fields"RispostaEsatta" SELECT CASE Request.Form"" & i & "" CASE "1" RispostaData=1 CASE "2" RispostaData=2 CASE "3" RispostaData=3 CASE "4" RispostaData=4 END SELECT IF RispostaEsatta=RispostaData THEN RisposteOK = RisposteOK +1 END IF i = i +1 rstabella.movenext Loop 'Calcolo della percentuale di domande corrette. Risultato = RisposteOK/i-1*100 'Esecuzione della query di aggiornamento per aggiornare la tabella ' con il risultato del test. QuerySQL="UPDATE Risultati " &_ "SET Valutazione=" & RoundRisultato,0 &_ " WHERE Allievo='" & Allievo & "' AND " &_ " Test='" & Test & "' AND " &_ " Corso='" & Corso & "'" ConnessioneDB.Execute QuerySQL, RecordModificati 'Stampa del risultato all'utente Response.Write"<H3>Risultato raggiunto nel test d'ingresso:<br>" Response.WriteRoundRisultato,0 & " %</H3>" %> rstabella.close : Set rstabella = Nothing ConnessioneDB.Close : Set ConnessioneDB = Nothing NOTE per l'uso del sito Web. In allegato a questa soluzione, è possibile eseguire il download della cartella con il sito Web che contiene l applicazione ASP appena realizzata. Il sito è pronto per essere pubblicato in locale o in Internet in un computer in cui è stato installato il servizio WWW. Il testing è stato effettuato pubblicando il sito in un computer locale con Windows XP Professional in cui è stato installato il servizio WWW, creato con il programma di sistema IIS Internet Information Services. Dopo la pubblicazione sia in locale sia in Internet, affinché funzionino le operazioni di aggiornamento sulla base di dati, è necessario che il file di database DBCorsiOnLine.mdb, nella home folder del sito, disponga dei necessari permessi di scrittura nel sito www.tramontana.it consulta anche Impostazione dei permessi di scrittura a un file di database con Windows XP nella sezione Approfondimenti ICT di ICT Web. 2007 RCS Libri S.p.A. Divisione Education 10 CORSI ON-LINE