create or replace package p_ese1 as



root constant VARCHAR2(20) := '/pls/webdb/MioAccountOracle.';

accountutente constant VARCHAR2(20) := 'MioAccountOracle';

Scelta varchar2(20);



procedure controllaDati(

	IlNome		in Persone.Nome%TYPE DEFAULT NULL,

	IlCognome	in Persone.Cognome%TYPE DEFAULT NULL,

	LAnnoNascita	in Persone.AnnoNascita%TYPE DEFAULT NULL);



procedure immetti(

	IlNome          in Persone.Nome%TYPE DEFAULT NULL,

        IlCognome       in Persone.Cognome%TYPE DEFAULT NULL,

        LAnnoNascita    in Persone.AnnoNascita%TYPE DEFAULT NULL,

        scelta 		in Scelta%TYPE DEFAULT NULL );  

end p_ese1;

/





create or replace package body p_ese1 as

procedure warning(

        IlNome    	in Persone.Nome%TYPE DEFAULT NULL,

        IlCognome 	in Persone.Cognome%TYPE DEFAULT NULL,

	LAnnoNascita	in Persone.AnnoNascita%TYPE DEFAULT NULL,

	IlMessaggio     VarChar2)

is

begin

  htp.htmlOpen;

  htp.headOpen;

  htp.title('Warning');

  htp.headClose;



  htp.bodyOpen; 

  htp.print('<H1 ALIGN=CENTER> Persona ' || IlNome || ' ' || IlCognome ||' '|| IlMessaggio ||'</H1>');

  htp.br;

  htp.formOpen(p_ese1.root || 'p_ese1.immetti');

  htp.formHidden('IlNome',IlNome);

  htp.formHidden('IlCognome',IlCognome); 

  htp.formHidden('LAnnoNascita',LAnnoNascita); 

  htp.formSubmit('','Reinserisci Persona');

  htp.formClose;

  htp.print('<CENTER>');

  htp.anchor('http://www.cli.di.unipi.it/~'||p_ese1.accountutente||'/ese1bdl/menu.html','Menu Principale'); 

  htp.print('</CENTER>'); 

  htp.bodyClose;

  htp.htmlClose;

end warning;



procedure immetti(

	IlNome          in Persone.Nome%TYPE DEFAULT NULL,

        IlCognome       in Persone.Cognome%TYPE DEFAULT NULL,

        LAnnoNascita    in Persone.AnnoNascita%TYPE DEFAULT NULL,

        scelta          in Scelta%TYPE DEFAULT NULL)

is

begin

  htp.htmlOpen;

  htp.headOpen; 

  htp.title('Immissione dati persona');

  htp.headClose;



  htp.bodyOpen;

  htp.print('<H1 ALIGN=CENTER>Immetti i dati della persona</H1>');

  htp.br;

  htp.br;  

  htp.formOpen(p_ese1.root || 'p_ese1.controllaDati','GET');

  htp.print('Nome ');

  htp.formText('IlNome','15','15',IlNome);

  htp.br;

  htp.print('Cognome ');

  htp.formText('IlCognome','15','15',IlCognome); 

  htp.br;

  htp.print('Anno di Nascita ');

  htp.formText('LAnnoNascita','2','2',LAnnoNascita); 

  htp.br;



  htp.formSubmit(cvalue=>'Immetti Persona');

  htp.formClose;

  htp.bodyClose; 

  htp.htmlClose; 

end immetti; 



procedure controllaDati(

	IlNome		in Persone.Nome%TYPE DEFAULT NULL,

	IlCognome	in Persone.Cognome%TYPE DEFAULT NULL,

	LAnnoNascita	in Persone.AnnoNascita%TYPE DEFAULT NULL)

is

quanti Number;

begin



  if (IlNome is null) or (IlCognome is null) 

    then warning(IlNome,IlCognome,LAnnoNascita,'non correttamente specificata');

    else select count(*) into quanti

  	 from persone

  	 where Nome = IlNome and Cognome = IlCognome;

	 if quanti > 0

            then warning(IlNome,IlCognome,LAnnoNascita,IlNome || ' gia'' presente');

     	    else insert into persone values (IlNome,IlCognome,LAnnoNascita); 

                 warning(IlNome,IlCognome,LAnnoNascita,'inserita correttamente'); 

         end if;

  end if;

end controllaDati;



end p_ese1;

/



show err package p_ese1

show err