La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Operazione immissione persona Vogliamo implementare il seguente progetto: Immissione persona Anno N. Nome Cognome Errore:.... Controllo e Immissione Errore.

Presentazioni simili


Presentazione sul tema: "Operazione immissione persona Vogliamo implementare il seguente progetto: Immissione persona Anno N. Nome Cognome Errore:.... Controllo e Immissione Errore."— Transcript della presentazione:

1 Operazione immissione persona Vogliamo implementare il seguente progetto: Immissione persona Anno N. Nome Cognome Errore:.... Controllo e Immissione Errore Inserisci Persona Cerca Persona Inserisci Persona OK Successo:....

2 Progetto di dettaglio Immissione persona Anno N. Nome Cognome Errore:.... Controllo e Immissione Errore Inserisci Persona Cerca Persona Inserisci Persona OK Successo:.... immetti(IlNome, menu.html controllaDati(IlNome, warning(IlNome,...

3 Progetto di dettaglio Stato 0: menu iniziale Stato 1 –Operazione: immetti –Parametri: IlNome, IlCognome, LAnnoNascita Stato 2 –Operazione: controllaDati –Parametri: IlNome, IlCognome, LAnnoNascita Stato 3 –Operazione: warning –Parametri: Messaggio errore –Parametri di giro: IlNome, IlCognome, LAnnoNascita

4 PER IMPLEMENTARE Il menu iniziale: posso implementarlo come un file statico Gli altri quattro stati: procedure che ricevono parametri: Immissione persona: –Definisco lo schema –Definisco la schermata iniziale –Memorizzo la procedura di immissione –Memorizzo la procedura di verifica errori –Memorizzo la procedura di visualizzazione risultato

5 Definizione dello schema Creo una directory ese1bdl Copio nella directory tutti i files che trovo in ~ghelli/bdl01/ese1 Mi connetto a lina, entro nella direcory, e mi connetto a sqlplus: sqlplus Da sqlplus carico il file create.sql: @create »drop table Persone »ERROR at line 1: »ORA-00942: table or view does not exist »Table created. Per provare il funzionamento, posso caricare insert.sql e query.sql Sulla macchina locale lancio emacs/pine *.sql per provare ad aggiungere un attributo

6 Creazione dello stato di immissione Modifico la forma ‘menu.html’ Creo una directory sotto $HTML/bdl01/ese: –cd $HTML/bdl01/ese –mkdir Rendo menu.html visibile al web server (la directory $HTML corrisponde ad http://lina.cli.di.unipi:8000) –ln -s $HOME/ese1bdl/menu.html $HTML/bdl01/ese/ /menu.html –controllare: cat $HTML/bdl01/ese/ /menu.html –controllare: sia il link che il file devono essere leggibili da tutti: Ls –l –Eseguite ‘rendileggibile’ Chiedo al docente di fare ripartire il web server (link Ammin. Web Server in Procedure per l’amministrazione) Esploro la forma creata: –http://lina.cli.di.unipi:8000/bdl01/ese/ /menu.ht ml

7 Il Menu Il tag: – specifica che: –prenota/: è una directory protetta da password, per la quale è stato specificato al Web server di attivare un agente –owa/: è il nome dell’agente attivato –mioaccount.p_ese1.immetti è il nome della procedura attivata (schema.modulo.procedura) Un tag: – specifica che alla procedura verrà passato un parametro “Cognome” inizializzato a null

8 Il sorgente di menu Il tag: –<FORM METHOD = "GET" ACTION = "http://lina.cli.di.unipi.it:8000/prenota/owa/mioaccount.p_ese1.con trollaDati") specifica che: –mioaccount.p_ese1.controllaDati è il nome della procedura attivata (schema.modulo.procedura) Un tag: – specifica che alla procedura verrà passato un parametro “Cognome” inizializzato con il valore immesso nel tag

9 Creazione della procedura di controllo dati ed immissione La procedura è nel file ese1.sql Dopo avere eseguito @ese1 dovete anche caricare @grant per dare al’agente ‘owa’ (che gira con l’identità dell’utente prenota) il diritto di eseguire la vostra procedura: grant execute on p_ese1 to prenota; Provate a modificare la procedura Dentro menu.html modificare ACTION da...XXXuser... a......

10 SQLPLUS: messaggi di errore Non confondere gli errori nel package (interfaccia) con quelli nel package body Comandi utili: –mostra errori: show err : mostra gli errori del body show err package p_pippo –(dove pippo non è il nome del file ma del package): mostra gli errori nel package –pausa ogni pagina: set pagesize 25 set pause on –lista le righe 80-100: l 80 100 Messaggi tipici: –@pippo 43 44 –=> avete scordato di scrivere "/"

11 Testare le procedure Scrivete la url: http://lina...8000/prenota/owa/schema.package.proc?par1= val1&..&parn=valn I messaggi di errore dell’agente prenota/owa si leggono in: –$LOG/prenota.err ($ORACLE_HOME/ows/log/prenota.err) (si può leggere solo da lina) Attenzione: contiene tutti i messaggi di errore, anche relativi ad altri utenti Errori più comuni: –prenota non ha il diritto di eseguire la procedura (il messaggio dice che -non esiste-) –il nome della procedura o quello dei parametri sono stati descritti male (oveflows integer datatype) –c'è qualche parametro in più o in meno –tipi sbagliati dei parametri (numeric or value error)


Scaricare ppt "Operazione immissione persona Vogliamo implementare il seguente progetto: Immissione persona Anno N. Nome Cognome Errore:.... Controllo e Immissione Errore."

Presentazioni simili


Annunci Google