1 / 11

Operazione immissione persona

Operazione immissione persona. Vogliamo implementare il seguente progetto:. Inserisci Persona. Cerca Persona. Inserisci Persona. Immissione persona. Anno N. Nome Cognome. Controllo e Immissione. Errore. OK. Errore:. Successo:. Progetto di dettaglio. menu.html. Inserisci Persona.

minna
Download Presentation

Operazione immissione persona

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Progetto di dettaglio menu.html Inserisci Persona Cerca Persona Inserisci Persona immetti(IlNome, Immissione persona Anno N. Nome Cognome controllaDati(IlNome, Controllo e Immissione Errore OK Errore: .... Successo: .... warning(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 <username> • 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 <mionomeaccount> • 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/<mionomeaccount>/menu.html • controllare: cat $HTML/bdl01/ese/<mionomeaccount>/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/<mionomeaccount>/menu.html

  7. Il Menu • Il tag: • <FORM METHOD = "GET" ACTION = "http://lina.cli.di.unipi.it:8000/prenota/owa/mioaccount.p_ese1.immetti"> • 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: • <INPUT TYPE = "hidden" NAME = "IlCognome"> • 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.controllaDati") • specifica che: • mioaccount.p_ese1.controllaDati è il nome della procedura attivata (schema.modulo.procedura) • Un tag: • <INPUT TYPE = "text" NAME = "Cognome"> • 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 ...<mioUtenteOracle>...

  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)

More Related