Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Mate X7 rinnova la sfida nel segmento dei pieghevoli premium puntando su un design ancora più sottile e resistente, unito al ritorno dei processori proprietari della serie Kirin. L'assenza dei servizi Google e del 5G pesa ancora sull'esperienza utente, ma il comparto fotografico e la qualità costruttiva cercano di compensare queste mancanze strutturali con soluzioni ingegneristiche di altissimo livello
Nioh 3: souls-like punitivo e Action RPG
Nioh 3: souls-like punitivo e Action RPG
Nioh 3 aggiorna la formula Team NINJA con aree esplorabili più grandi, due stili di combattimento intercambiabili al volo (Samurai e Ninja) e un sistema di progressione pieno di attività, basi nemiche e sfide legate al Crogiolo. La recensione entra nel dettaglio su combattimento, build, progressione e requisiti PC
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-08-2005, 17:00   #1
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
[JSP] Problema di conversione dei tipi usando DBTAGS :(

Descrizione della situazione:


Quella appena postata è la parte del DB interessata.
Praticamente devo cancellare 1 utente dalla conferenza, ma prima devo rimuoverlo dalle sue "partecipazioni e scelte".

Tutto facile in PHP, ma in JSP + DBTAGS sto impazzendo.

Al momento di fare l'aggiornamento dei posti disponibili, cioè posti++, dato che cancello 1 utente, compare il bellissimo messaggio di Tomcat che dice non si può passare da oggetto ad intero ...
Ma porc!!

Il codice è il seguente.
Codice HTML:
<%-- query, annidamento 0. Seleziono gli eventi della conferenza specifica --%>
<sql:statement id="statement1" conn="conn1">
<sql:query>
	 SELECT * FROM evento WHERE argomento='<%=request.getParameter("argomento")%>'
	 AND scadenza='<%=request.getParameter("scadenza")%>'
</sql:query>
<sql:resultSet id="rs1">
	 <sql:getColumn position="2" to="nome" scope="page" />
     <sql:getColumn position="5" to="data" scope="page" />
		   
     <%-- altra query annidata, annidamento 1. Seleziono i collaterali agli eventi della conferenza specifica --%>
     <sql:statement id="statement2" conn="conn1">
     <sql:query>
	      SELECT * FROM possiede WHERE nome='<%=pageContext.getAttribute("nome")%>'
		  AND data='<%=pageContext.getAttribute("data")%>'
     </sql:query>
     <sql:resultSet id="rs2">
	      <sql:getColumn position="3" to="nome1" scope="page" />
          <sql:getColumn position="4" to="data1" scope="page" />

          <%-- altra query annidata, annidamento 2. Cancello la partecipazione ai collaterali. --%>
          <sql:statement id="statement3" conn="conn1">
	      <sql:query>
	           DELETE FROM partecipa WHERE utente_id='<%= request.getParameter("utente_id") %>'
			   AND nome='<%=pageContext.getAttribute("nome1")%>' AND data='<%=pageContext.getAttribute("data1")%>'
          </sql:query>
          <sql:execute ignoreErrors="true" />
          </sql:statement>
          <%-- fine query annidata, annidamento 2 --%>
		  
		  <%-- altra query annidata, annidamento 2. Tento l'update dei posti dei collaterali. --%>
          <sql:statement id="statementA" conn="conn1">
	      <sql:query>
	           SELECT * FROM collaterale WHERE nome='<%=pageContext.getAttribute("nome1")%>'
			   AND data='<%=pageContext.getAttribute("data1")%>'
          </sql:query>
          <sql:resultSet id="rsA">Posti disponibili:
		       <sql:getNumber position="6" />
	           <sql:getNumber position="6" to="posti" scope="page" format="NUMBER"/>
          </sql:resultSet>
          <sql:execute ignoreErrors="true" />
          </sql:statement>
          <%-- fine query annidata, annidamento 2 --%>
		  
<%
out.print("Posti vecchi disponibili: " + pageContext.getAttribute("posti"));
int posti_disponibili_ev = pageContext.getAttribute("posti");
%>

          <%-- altra query annidata, annidamento 2. Cancello la scelta degli eventi. --%>
          <sql:statement id="statement4" conn="conn1">
	      <sql:query>
	           DELETE FROM scelto WHERE utente_id='<%= request.getParameter("utente_id") %>'
			   AND nome='<%=pageContext.getAttribute("nome")%>' AND data='<%=pageContext.getAttribute("data")%>'
          </sql:query>
          <sql:execute ignoreErrors="true" />
          </sql:statement>
          <%-- fine query annidata, annidamento 2 --%>

     </sql:resultSet>
     <sql:execute ignoreErrors="true" />
     </sql:statement>
     <%-- fine query annidata, annidamento 1 --%>

</sql:resultSet>
<sql:execute ignoreErrors="true" />
</sql:statement>
<%-- fine query annidata, annidamento 0 --%>

<%-- query, annidamento 0 --%>
<sql:statement id="statement5" conn="conn1">
<sql:query>
	 DELETE FROM iscritto WHERE utente_id='<%= request.getParameter("utente_id") %>'
	 AND argomento='<%=request.getParameter("argomento")%>' AND scadenza='<%=request.getParameter("scadenza")%>'
</sql:query>
<sql:execute ignoreErrors="true" />
</sql:statement>
<%-- fine query annidata, annidamento 0 --%>
In particolare la parte interessata penso sia questa:
Codice HTML:
		  <%-- altra query annidata, annidamento 2. Tento l'update dei posti dei collaterali. --%>
          <sql:statement id="statementA" conn="conn1">
	      <sql:query>
	           SELECT * FROM collaterale WHERE nome='<%=pageContext.getAttribute("nome1")%>'
			   AND data='<%=pageContext.getAttribute("data1")%>'
          </sql:query>
          <sql:resultSet id="rsA">Posti disponibili:
		       <sql:getNumber position="6" />
	           <sql:getNumber position="6" to="posti" scope="page" format="NUMBER"/>
          </sql:resultSet>
          <sql:execute ignoreErrors="true" />
          </sql:statement>
          <%-- fine query annidata, annidamento 2 --%>
		  
<%
out.print("Posti vecchi disponibili: " + pageContext.getAttribute("posti"));
int posti_disponibili_ev = pageContext.getAttribute("posti");
%>
Eppure il metodo:

out.print("Posti vecchi disponibili: " + pageContext.getAttribute("posti"));

stampa tranquillamente il numero di posti.

Questo è il msg di Tomcat:


Se qualcuno se la cava meglio di me, sono in ascolto.
So che l'argomento è complesso, ma tentar a chiedere non nuoce.
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.

Ultima modifica di Matrixbob : 09-08-2005 alle 17:15.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 09-08-2005, 17:18   #2
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
La documentazione delle DBTAGS, se qualcuno vuole darmi una mano, è qua:
http://jakarta.apache.org/taglibs/do...1.0/index.html
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 09-08-2005, 17:35   #3
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
Mamma mia ho fatto un escape da artista:
Codice:
<%
out.print("Posti vecchi disponibili: " + pageContext.getAttribute("posti"));
int posti_disponibili_ev = Integer.parseInt((String)pageContext.getAttribute("posti"));
%>
Cavolo è una faticaccia però, anzi un po' una cacca lavorare così.
Ehm mi raccomando seguitemi fino ad UPDATE dei posti avvenuto, perchè ho proprio timore d'incontrare altre belle sorprese!
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.

Ultima modifica di Matrixbob : 09-08-2005 alle 17:37.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 27-08-2005, 20:13   #4
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
Per convertirlo in numero con virgola (dovrebbe chiamarsi float vero?!) avete idea di come fare senza farmi smanettare troppo?!
TNX.

PS
Io vado d'intuito:
Float.parseFloat
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 27-08-2005, 21:06   #5
BlueDragon
Senior Member
 
L'Avatar di BlueDragon
 
Iscritto dal: Dec 2002
Messaggi: 418
Quote:
Originariamente inviato da Matrixbob
Per convertirlo in numero con virgola (dovrebbe chiamarsi float vero?!) avete idea di come fare senza farmi smanettare troppo?!
TNX.

PS
Io vado d'intuito:
Float.parseFloat
Sì, Float.parseFloat(String s) è l'equivalente float di Integer.parseInt(String s)
BlueDragon è offline   Rispondi citando il messaggio o parte di esso
Old 27-08-2005, 22:00   #6
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
Quote:
Originariamente inviato da BlueDragon
Sì, Float.parseFloat(String s) è l'equivalente float di Integer.parseInt(String s)
Ma perchè i tipi come: int, char, float li scrivo minuscoli ed invece String va scritto maiuscolo?!
Inoltre anche l'editor me lo colora di viola anzichè azzurro come gli altri tipi ...

Sapete come rendere una variabile visibile in tutta la pgina col JSP + DBTAGS per caso?!

Altrimenti mi tocca fare un sacco d'annidamenti nei DBTAGS.

Sarà il primo e l'ultimo progetto in cui uso i DBTAGS ... fanno pena!
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 27-08-2005, 23:16   #7
BlueDragon
Senior Member
 
L'Avatar di BlueDragon
 
Iscritto dal: Dec 2002
Messaggi: 418
Quote:
Originariamente inviato da Matrixbob
Ma perchè i tipi come: int, char, float li scrivo minuscoli ed invece String va scritto maiuscolo?!
Inoltre anche l'editor me lo colora di viola anzichè azzurro come gli altri tipi ...
Perché int, char e float sono tipi primitivi, mentre String è un oggetto. In realtà esistono anche le versioni oggetto di int,float e char...le loro classi si chiamano Integer, Char e Float
Se ciò che scrivo ti sembra oscuro, ti consiglio di leggere un manuale Java...es: "Java Mattone dopo mattone" che puoi scaricare da qui:
http://www.java-net.it/download.html

Quote:
Sapete come rendere una variabile visibile in tutta la pgina col JSP + DBTAGS per caso?!

Altrimenti mi tocca fare un sacco d'annidamenti nei DBTAGS.

Sarà il primo e l'ultimo progetto in cui uso i DBTAGS ... fanno pena!
Non conosco i DBTAGS, comunque in generale, se non la dichiari dentro un blocco particolare, basta che la dichiari all'inizio ed è visibile in tutto il resto della pagina...
BlueDragon è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2005, 09:59   #8
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
Quote:
Originariamente inviato da BlueDragon
Perché int, char e float sono tipi primitivi, mentre String è un oggetto. In realtà esistono anche le versioni oggetto di int,float e char...le loro classi si chiamano Integer, Char e Float
Se ciò che scrivo ti sembra oscuro, ti consiglio di leggere un manuale Java...es: "Java Mattone dopo mattone" che puoi scaricare da qui:
http://www.java-net.it/download.html
In download, infatti ieri sera ripensandoci mi pareva anche a me fosse così.
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2005, 10:08   #9
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
Codice HTML:
...
<%-- annidamento 2. Cerco di capire se l'utente è anche un autore --%>
<sql:statement id="statementA1" conn="conn1">
<sql:query>
      SELECT * FROM utente WHERE utente_id='<%= request.getParameter("utente_id") %>'
</sql:query>
<sql:resultSet id="rsA1">
       <sql:getColumn position="6" to="cf" scope="page" />
</sql:resultSet>
<sql:execute ignoreErrors="true" />
</sql:statement>

<%-- annidamento 2. Cerco di capire se l'utente è anche un autore --%>
<sql:statement id="statementB2" conn="conn1">
<sql:query>
       SELECT * FROM autore WHERE cf='<%= pageContext.getAttribute("cf") %>'
</sql:query>
<sql:resultSet id="rsB2">
       <sql:wasNotEmpty> <% String autore="TRUE"; %> </sql:wasNotEmpty>
</sql:resultSet>
       <sql:wasEmpty> <% String autore="FALSE"; %> </sql:wasEmpty>
<sql:execute ignoreErrors="true" />
</sql:statement>
...
In questa maniera se + in basso nella pagina richiamao la variabile autore per far fare 1 ramo di codice diverso in base al fatto che l'utente sia anche autore o meno mi risulta impossibile.
Tomcat mi dice che non trova da nessuna parte la variabile autore.

Solo tra quei 2 TAG <sql:wasNotEmpty> & <sql:wasEmpty> esiste!!!

Se + avanti nella pagina JSP, fuori dai TAG precedenti faccio
Codice HTML:
...
<% out.print("Autore: " + autore + "<br />"); %>
...
Tomcat s'incazza!!!
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.

Ultima modifica di Matrixbob : 28-08-2005 alle 10:20.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2005, 10:19   #10
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
Morale della favola:
Se non torvo una maniera x rendere "static" la variabile autore, mi tocchera spostare i rami di codice con altri statement all'interno di quei 2 TAG ed il che significa:
IL DELIIIRIIIIOOOOO!

Aiuto!
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2005, 14:17   #11
BlueDragon
Senior Member
 
L'Avatar di BlueDragon
 
Iscritto dal: Dec 2002
Messaggi: 418
Evidentemente <% String autore="TRUE"; %> e <% String autore="FALSE"; %> si trovano all'interno di particolari blocchi di codice...anche perché, se non fossero "blocchi locali", avresti due volte la dichiarazione della stessa variabile!
Se ti va di curiosare, esiste una cartella in Tomcat in cui puoi vedere come sono stati tradotti i TAG in fase di compilazione...cerca la cartella "work" (allo stesso livello di WebApp) e sbircia nelle sottocartelle...

Comunque se vuoi autore come variabile "globale", non dichiararla all'interno di quei tag...dichiarala prima!

Fai all'inizio pagina:
<% String autore %>

e modifica quindi i punti in cui gli assegni un valore in:
<% autore="TRUE"; %> e <% autore="FALSE"; %> (eliminando la dichiarazione del tipo)

e vedrai che funziona anche dopo

Approposito, visto che ci assegni i valori "TRUE" e "FALSE", potrebbe essere conveniente dichiararla direttamente boolean...o Boolean
BlueDragon è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2005, 15:29   #12
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
Quote:
Originariamente inviato da BlueDragon
Evidentemente <% String autore="TRUE"; %> e <% String autore="FALSE"; %> si trovano all'interno di particolari blocchi di codice...anche perché, se non fossero "blocchi locali", avresti due volte la dichiarazione della stessa variabile!
Se ti va di curiosare, esiste una cartella in Tomcat in cui puoi vedere come sono stati tradotti i TAG in fase di compilazione...cerca la cartella "work" (allo stesso livello di WebApp) e sbircia nelle sottocartelle...

Comunque se vuoi autore come variabile "globale", non dichiararla all'interno di quei tag...dichiarala prima!

Fai all'inizio pagina:
<% String autore %>

e modifica quindi i punti in cui gli assegni un valore in:
<% autore="TRUE"; %> e <% autore="FALSE"; %> (eliminando la dichiarazione del tipo)

e vedrai che funziona anche dopo

Approposito, visto che ci assegni i valori "TRUE" e "FALSE", potrebbe essere conveniente dichiararla direttamente boolean...o Boolean
Ok, provo e ti faccio sapere.
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2005, 17:52   #13
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
Ok adesso funziona, peccato che non posso provarlo bene, ma dovrebbe funzionare.
Ho qualche errore in questo codice che ho partorito pieno di annidamenti di query!!!

Codice:
<%-- una delle pagine che mi permettono la cancellazione da una conferenza --%>
<jsp:include page = "top.jsp" flush="true" />
<%@ page errorPage = "ErrorPage.jsp" %>
<br />
<%@ taglib uri="http://jakarta.apache.org/taglibs/dbtags" prefix="sql" %>

<%-- open a database connection --%>
<sql:connection id="conn1">
  <%-- required --%>
  <sql:url>jdbc:mysql://localhost/sysconf</sql:url>
  <%-- optional --%>
  <sql:driver>org.gjt.mm.mysql.Driver</sql:driver>
  <%-- optional --%> 
  <sql:userId>root</sql:userId>
  <%-- optional --%>
  <sql:password>cane</sql:password>
</sql:connection>

<%-- Definisco ed inizializzo le variabili che mi servono --%>
<%
String autore="FALSE";

int posti_vecchi_ev=0;
int posti_nuovi_ev=0; 

float spesa_tot_nuova=0;
float spesa_tot_vecchia=0;
float costo=0;
%> 

<%-- Provo a capire se l'utente è anche un autore di qualche lavoro --%>
<sql:statement id="statementA" conn="conn1">
<sql:query>
     SELECT * FROM utente WHERE utente_id='<%= request.getParameter("utente_id") %>'
 </sql:query>
<sql:resultSet id="rsA">
     <sql:getColumn position="6" to="cf" scope="page" />
</sql:resultSet>
<sql:execute ignoreErrors="true" />
</sql:statement>

<sql:statement id="statementB" conn="conn1">
<sql:query>
     SELECT * FROM autore WHERE cf='<%= pageContext.getAttribute("cf") %>'
</sql:query>
<sql:resultSet id="rsB">
     <sql:wasNotEmpty> <% autore="TRUE"; %> </sql:wasNotEmpty>
</sql:resultSet>
<sql:wasEmpty> <% autore="FALSE"; %> </sql:wasEmpty>
<sql:execute ignoreErrors="true" />
</sql:statement>
<%-- A questo punto dovrei averlo capito --%>

<% out.print("Autore: " + autore + "<br />"); %>

<br />
<div align="center">
<fieldset id="nominativo">
<legend>Cancella</legend>

<%-- Annidamento 0. Seleziono gli eventi della conferenza specifica. --%>
<sql:statement id="statementC" conn="conn1">
<sql:query>
	 SELECT * FROM evento WHERE argomento='<%=request.getParameter("argomento")%>'
	 AND scadenza='<%=request.getParameter("scadenza")%>'
</sql:query>
<sql:resultSet id="rsC">
     <sql:getColumn position="2" to="nome" scope="page" />
     <sql:getColumn position="5" to="data" scope="page" />
		   
     <%-- Annidamento 1. Seleziono i collaterali agli eventi della conferenza. --%>
     <sql:statement id="statementD" conn="conn1">
     <sql:query>
	      SELECT * FROM possiede WHERE nome='<%=pageContext.getAttribute("nome")%>'
		  AND data='<%=pageContext.getAttribute("data")%>'
     </sql:query>
     <sql:resultSet id="rsD">
	      <sql:getColumn position="3" to="nome1" scope="page" />
          <sql:getColumn position="4" to="data1" scope="page" />

          <%-- Annidamento 2. Select dei collaterali a cui partecipo. --%>
          <sql:statement id="statementE" conn="conn1">
	      <sql:query>
	           SELECT * FROM partecipa WHERE utente_id='<%= request.getParameter("utente_id") %>'
			   AND nome='<%=pageContext.getAttribute("nome1")%>'
               AND data='<%=pageContext.getAttribute("data1")%>'
          </sql:query>
          <sql:resultSet id="rsE">
	           <sql:getColumn position="2" to="nome_delete" scope="page" />
               <sql:getColumn position="3" to="data_delete" scope="page" />

		       <%-- Annidamento 3. Preparo l'update dei posti dei collaterali. --%>
               <sql:statement id="statementF" conn="conn1">
	           <sql:query>
	                SELECT * FROM collaterale
                    WHERE nome='<%=pageContext.getAttribute("nome_delete")%>'
			        AND data='<%=pageContext.getAttribute("data_delete")%>'
               </sql:query>
               <sql:resultSet id="rsF">
	                <sql:getNumber position="6" to="posti" scope="page" format="NUMBER"/>
                    <sql:getNumber position="7" to="costo" scope="page" format="NUMBER"/>
               </sql:resultSet>
               <sql:execute ignoreErrors="true" />
               </sql:statement>
               <%-- fine query F, annidamento 3 --%>
		  
               <%
                 posti_vecchi_ev = Integer.parseInt((String)pageContext.getAttribute("posti"));
                 out.print("Collaterale: posti vecchi disponibili: " + posti_vecchi_ev + "<br />");
                 posti_nuovi_ev = posti_vecchi_ev + 1;
                 out.print("Collaterale: posti nuovi disponibili: " + posti_nuovi_ev + "<br />");
               %>
		  
		       <%-- Annidamento 3. Tento l'update dei posti dei collaterali. --%>
               <sql:statement id="statementG" conn="conn1">
	           <sql:query>
	                UPDATE collaterale SET posti_disponibili='<% out.print(posti_nuovi_ev); %>'
                    WHERE nome='<%=pageContext.getAttribute("nome_delete")%>'
                    AND data='<%=pageContext.getAttribute("data_delete")%>'
               </sql:query>
               <sql:execute ignoreErrors="true" />
               </sql:statement>
               <%-- fine query G, annidamento 3 --%>

               <%-- Annidamento 3. Cancello la partecipazione ai collaterali. --%>
               <sql:statement id="statementH" conn="conn1">
	           <sql:query>
	                DELETE FROM partecipa WHERE utente_id='<%= request.getParameter("utente_id") %>'
			        AND nome='<%=pageContext.getAttribute("nome_delete")%>'
                    AND data='<%=pageContext.getAttribute("data_delete")%>'
               </sql:query>
               <sql:execute ignoreErrors="true" />
               </sql:statement>
               <%-- fine query H, annidamento 3 --%>

          </sql:resultSet>
          <sql:execute ignoreErrors="true" />
          </sql:statement>
          <%-- fine query E, annidamento 2 di select dei collaterali a cui partecipo --%>

          <%-- Annidamento 2. Preparo l'update della spesa dell'utente x i collaterali. --%>
          <sql:statement id="statementI" conn="conn1">
          <sql:query>
               SELECT * FROM utente WHERE utente_id='<%= request.getParameter("utente_id") %>'
          </sql:query>
          <sql:resultSet id="rsI">
               <sql:getNumber position="8" to="spesa" scope="page" format="NUMBER"/>
          </sql:resultSet>
          <sql:execute ignoreErrors="true" />
          </sql:statement>
          
          <% if (autore.equals("FALSE")) {
                   costo = Float.parseFloat((String)pageContext.getAttribute("costo"));
                   spesa_tot_vecchia = Float.parseFloat((String)pageContext.getAttribute("spesa"));
                   spesa_tot_nuova = spesa_tot_vecchia - costo;
                   out.print("Costo: " + costo + "<br />");
                   out.print("spesa_tot_vecchia: " + spesa_tot_vecchia + "<br />");
                   out.print("spesa_tot_nuova: " + spesa_tot_nuova + "<br />");
                  }
             else {
                   costo = Float.parseFloat((String)pageContext.getAttribute("costo"));
                   spesa_tot_vecchia = Float.parseFloat((String)pageContext.getAttribute("spesa"));
                   spesa_tot_nuova = spesa_tot_vecchia - (costo - ((costo * 20) / 100));
                   out.print("Costo: " + costo + "<br />");
                   out.print("spesa_tot_vecchia: " + spesa_tot_vecchia + "<br />");
                   out.print("spesa_tot_nuova: " + spesa_tot_nuova + "<br />");
                  }
          %>

          <%-- Annidamento 2. Tento l'update della spesa dell'utente x i collaterali. --%>
          <sql:statement id="statementL" conn="conn1">
          <sql:query>
	           UPDATE utente SET spesa_tot ='<% out.print(spesa_tot_nuova); %>'
	           WHERE utente_id='<%= request.getParameter("utente_id") %>'
          </sql:query>
          <sql:execute ignoreErrors="true" />
          </sql:statement>
          <%-- fine annidamento 2. Update della spesa dell'utente x i collaterali. --%>

     </sql:resultSet>
     <sql:execute ignoreErrors="true" />
     </sql:statement>
     <%-- fine query D, annidamento 1 di selezione di collaterali agli eventi della conferenza --%>

     <%-- Annidamento 1. Select degli eventi che ho scelto. --%>
     <sql:statement id="statementM" conn="conn1">
	 <sql:query>
	      SELECT * FROM scelto WHERE utente_id='<%= request.getParameter("utente_id") %>'
          AND nome='<%=pageContext.getAttribute("nome")%>'
          AND data='<%=pageContext.getAttribute("data")%>'
     </sql:query>
     <sql:resultSet id="rsM">
	      <sql:getColumn position="2" to="nome_delete" scope="page" />
          <sql:getColumn position="3" to="data_delete" scope="page" />

          <%-- Annidamento 2. Preparo l'update dei posti degli eventi. --%>
          <sql:statement id="statementN" conn="conn1">
	      <sql:query>
	           SELECT * FROM evento WHERE nome='<%=pageContext.getAttribute("nome_delete")%>'
               AND data='<%=pageContext.getAttribute("data_delete")%>'
          </sql:query>
          <sql:resultSet id="rsN">
	           <sql:getNumber position="6" to="posti" scope="page" format="NUMBER"/>
               <sql:getNumber position="7" to="costo" scope="page" format="NUMBER"/>
          </sql:resultSet>
          <sql:execute ignoreErrors="true" />
          </sql:statement>
          <%-- fine query N, annidamento 2 --%>
		  
          <%
            posti_vecchi_ev = Integer.parseInt((String)pageContext.getAttribute("posti"));
            out.print("Evento: posti vecchi disponibili: " + posti_vecchi_ev + "<br />");
            posti_nuovi_ev = posti_vecchi_ev + 1;
            out.print("Evento: posti nuovi disponibili: " + posti_nuovi_ev + "<br />");
          %>

          <%-- Annidamento 2. Tento l'update dei posti degli eventi. --%>
          <sql:statement id="statementO" conn="conn1">
	      <sql:query>
	           UPDATE evento SET posti_disponibili='<% out.print(posti_nuovi_ev); %>'
               WHERE nome='<%=pageContext.getAttribute("nome")%>'
               AND data='<%=pageContext.getAttribute("data")%>'
          </sql:query>
          <sql:execute ignoreErrors="true" />
          </sql:statement>
          <%-- fine query O, annidamento 2 --%>

          <%-- Annidamento 2. Cancello la scelta degli eventi. --%>
          <sql:statement id="statementP" conn="conn1">
	      <sql:query>
	           DELETE FROM scelto WHERE utente_id='<%= request.getParameter("utente_id") %>'
               AND nome='<%=pageContext.getAttribute("nome_delete")%>'
               AND data='<%=pageContext.getAttribute("data_delete")%>'
          </sql:query>
          <sql:execute ignoreErrors="true" />
          </sql:statement>
          <%-- fine query P, annidamento 2 --%>

     </sql:resultSet>
     <sql:execute ignoreErrors="true" />
     </sql:statement>
     <%-- fine query annidata M, annidamento 1 --%>

     <%-- Annidamento 1. Tento l'update della spesa dell'utente x gli eventi. --%>
     <sql:statement id="statementQ" conn="conn1">
     <sql:query>
          SELECT * FROM utente WHERE utente_id='<%= request.getParameter("utente_id") %>'
     </sql:query>
     <sql:resultSet id="rsQ">
          <sql:getNumber position="8" to="spesa" scope="page" format="NUMBER"/>
     </sql:resultSet>
     <sql:execute ignoreErrors="true" />
     </sql:statement>

     <% if (autore.equals("FALSE")) {
                   costo = Float.parseFloat((String)pageContext.getAttribute("costo"));
                   spesa_tot_vecchia = Float.parseFloat((String)pageContext.getAttribute("spesa"));
                   spesa_tot_nuova = spesa_tot_vecchia - costo;
                   out.print("Costo: " + costo + "<br />");
                   out.print("spesa_tot_vecchia: " + spesa_tot_vecchia + "<br />");
                   out.print("spesa_tot_nuova: " + spesa_tot_nuova + "<br />");
                  }
             else {
                   costo = Float.parseFloat((String)pageContext.getAttribute("costo"));
                   spesa_tot_vecchia = Float.parseFloat((String)pageContext.getAttribute("spesa"));
                   spesa_tot_nuova = spesa_tot_vecchia - (costo - ((costo * 20) / 100));
                   out.print("Costo: " + costo + "<br />");
                   out.print("spesa_tot_vecchia: " + spesa_tot_vecchia + "<br />");
                   out.print("spesa_tot_nuova: " + spesa_tot_nuova + "<br />");
                  }
     %>

     <sql:statement id="statementR" conn="conn1">
     <sql:query>
	      UPDATE utente SET spesa_tot ='<% out.print(spesa_tot_nuova); %>'
	      WHERE utente_id='<%= request.getParameter("utente_id") %>'
     </sql:query>
     <sql:execute ignoreErrors="true" />
     </sql:statement>
      <%-- fine query R, annidamento 1. Update della spesa dell'utente x gli eventi. --%>

</sql:resultSet>
<sql:execute ignoreErrors="true" />
</sql:statement>
<%-- fine query C, annidamento 0 di selezione degli eventi della conferenza specifica. --%>

<%-- Annidamento 0 per cancellare l'iscrizione ad una conferenza --%>
<sql:statement id="statementS" conn="conn1">
<sql:query>
	 DELETE FROM iscritto WHERE utente_id='<%= request.getParameter("utente_id") %>'
	 AND argomento='<%=request.getParameter("argomento")%>'
     AND scadenza='<%=request.getParameter("scadenza")%>'
</sql:query>
<sql:execute ignoreErrors="true" />
</sql:statement>
<%-- fine query S, annidamento 0 --%>

<h3 align="center"><font color="green">Utente cancellato dalla conferenza.</font></h3>
<%-- <meta http-equiv="Refresh" content="5;
url=http://localhost:8080/www/j2ee-sysconf/menu.jsp" /> --%>
</fieldset>
</div>

<sql:closeConnection conn="conn1"/>
<br />
<jsp:include page="bottom.jsp" flush="true" />
Sta volta Tomcat non mi da errore, ma mi restituisce una pagina bianca e mo come faccio a sapere dove ho scazzato qualcosa?!
Sarà per tutte le query con ignoreErrors="true"?!
Stasera quando torno dalla corsa provo a sostituirli in automatico col editor in "false".

Se nel frattempo qualcun'altro ha un'altra idea, son tutt'occhi!
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.

Ultima modifica di Matrixbob : 29-08-2005 alle 17:56.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2005, 19:42   #14
BlueDragon
Senior Member
 
L'Avatar di BlueDragon
 
Iscritto dal: Dec 2002
Messaggi: 418
Quote:
Originariamente inviato da Matrixbob
Sta volta Tomcat non mi da errore, ma mi restituisce una pagina bianca e mo come faccio a sapere dove ho scazzato qualcosa?!
Sarà per tutte le query con ignoreErrors="true"?!
Stasera quando torno dalla corsa provo a sostituirli in automatico col editor in "false".

Se nel frattempo qualcun'altro ha un'altra idea, son tutt'occhi!
Non ho guardato tutto il codice, ma ti consiglio di riscriverlo togliendo più annidamenti possibili ora che sai come avere delle variabili "durature".
Per quanto riguarda l'errore, è possibile che sia mascherato da ignoreErrors="true"...se anche mettendolo a false non trovi nulla, prova a mettere un po' di out.println per capire a che punto si ferma
BlueDragon è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2005, 20:20   #15
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
Quote:
Originariamente inviato da BlueDragon
prova a mettere un po' di out.println per capire a che punto si ferma
Una pagina bianca significa che si ferma subito suppongo!
Deve esserci qualcosa di strano, cmq doccio, magno e controllo!

[EDIT]
Mi sa che gli annidamenti non posso toglierli perchè le DBTAGS con il tag "<sql:resultSet>" auto-ciclano sul SetRisultato e quindi per ottenre le combinazioni devo annidarle lì dentro!
almeno così ho capito dalla documetazione on-line:
http://jakarta.apache.org/taglibs/do...1.0/index.html

Mi chiedo se con le JSTL tags la vita fosse stata diversa ... altrimenti la prox volta programmo in Java puro!
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.

Ultima modifica di Matrixbob : 28-08-2005 alle 20:30.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2005, 20:27   #16
BlueDragon
Senior Member
 
L'Avatar di BlueDragon
 
Iscritto dal: Dec 2002
Messaggi: 418
Quote:
Originariamente inviato da Matrixbob
Una pagina bianca significa che si ferma subito suppongo!
Deve esserci qualcosa di strano, cmq doccio, magno e controllo!
Uhm..no, a pensarci bene no, non è detto che si fermi subito. Purtroppo non è così semplice quando si tratta di debuggare le jsp...anziché fare out.println forse è meglio se fai System.out.println e ti vai a guardare cosa appare nella console del Tomcat...(dove probabilmente avrai anche l'indicazione dell'errore anziché una poco significativa pagina bianca).
BlueDragon è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2005, 20:31   #17
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
Quote:
Originariamente inviato da BlueDragon
Uhm..no, a pensarci bene no, non è detto che si fermi subito. Purtroppo non è così semplice quando si tratta di debuggare le jsp...anziché fare out.println forse è meglio se fai System.out.println e ti vai a guardare cosa appare nella console del Tomcat...(dove probabilmente avrai anche l'indicazione dell'errore anziché una poco significativa pagina bianca).
Quindi in uno di questi log:
C:\Programmi\Apache Software Foundation\Tomcat 5.5\logs

vero?!
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2005, 21:13   #18
BlueDragon
Senior Member
 
L'Avatar di BlueDragon
 
Iscritto dal: Dec 2002
Messaggi: 418
Quote:
Originariamente inviato da Matrixbob
Quindi in uno di questi log:
C:\Programmi\Apache Software Foundation\Tomcat 5.5\logs

vero?!
Forse sì, non conosco le opzioni di log di Tomcat quindi non ne ho la certezza. Io intendevo proprio la console..cioé quella finestrina nera "tipo DOS" che si apre quando avvi Tomcat....a meno che tu non lo abbia installato come servizio, in quel caso mi sa che non fa vedere la finestrella
BlueDragon è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2005, 21:27   #19
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
Quote:
Originariamente inviato da BlueDragon
Forse sì, non conosco le opzioni di log di Tomcat quindi non ne ho la certezza. Io intendevo proprio la console..cioé quella finestrina nera "tipo DOS" che si apre quando avvi Tomcat....a meno che tu non lo abbia installato come servizio, in quel caso mi sa che non fa vedere la finestrella
Mmmm mi sa che controllerò domani, stasera mi sento un po' rimbambito e scazzato, porto in garage l'auto e gioco a StarCraft!

CMQ Dragon sei stato veramente utile e paziente, domani ti faccio sepere se risolvo o meno.

Grazie ancora!!
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 29-08-2005, 18:38   #20
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
C'è l'ho fatta Dragon!!!
alla fine ho partorito questo codice ...
Codice:
<%-- una delle pagine che mi permettono la cancellazione da una conferenza --%>
<jsp:include page = "top.jsp" flush="true" />
<%@ page errorPage = "ErrorPage.jsp" %>
<br />
<%@ taglib uri="http://jakarta.apache.org/taglibs/dbtags" prefix="sql" %>

<%-- open a database connection --%>
<sql:connection id="conn1">
  <%-- required --%>
  <sql:url>jdbc:mysql://localhost/sysconf</sql:url>
  <%-- optional --%>
  <sql:driver>org.gjt.mm.mysql.Driver</sql:driver>
  <%-- optional --%> 
  <sql:userId>root</sql:userId>
  <%-- optional --%>
  <sql:password>cane</sql:password>
</sql:connection>

<%-- Definisco ed inizializzo le variabili che mi servono --%>
<%
String autore="FALSE";

int posti_vecchi_ev=0;
int posti_nuovi_ev=0; 

float spesa_tot_nuova=0;
float spesa_tot_vecchia=0;
float costo=0;
%> 

<%-- Provo a capire se l'utente è anche un autore di qualche lavoro --%>
<sql:statement id="statementA" conn="conn1">
<sql:query>
     SELECT * FROM utente WHERE utente_id='<%= request.getParameter("utente_id") %>'
 </sql:query>
<sql:resultSet id="rsA">
     <sql:getColumn position="6" to="cf" scope="page" />
</sql:resultSet>
<sql:execute ignoreErrors="true" />
</sql:statement>

<sql:statement id="statementB" conn="conn1">
<sql:query>
     SELECT * FROM autore WHERE cf='<%= pageContext.getAttribute("cf") %>'
</sql:query>
<sql:resultSet id="rsB">
     <sql:wasNotEmpty> <% autore="TRUE"; %> </sql:wasNotEmpty>
</sql:resultSet>
<sql:wasEmpty> <% autore="FALSE"; %> </sql:wasEmpty>
<sql:execute ignoreErrors="true" />
</sql:statement>
<%-- A questo punto dovrei averlo capito --%>

<% out.print("Autore: " + autore + "<br />"); %>

<br />
<div align="center">
<fieldset id="nominativo">
<legend>Cancella</legend>

<%-- Annidamento 0. Seleziono gli eventi della conferenza specifica. --%>
<sql:statement id="statementC" conn="conn1">
<sql:query>
	 SELECT * FROM evento WHERE argomento='<%=request.getParameter("argomento")%>'
	 AND scadenza='<%=request.getParameter("scadenza")%>'
</sql:query>
<sql:resultSet id="rsC">
     <sql:getColumn position="2" to="nome" scope="page" />
     <sql:getColumn position="5" to="data" scope="page" />
		   
     <%-- Annidamento 1. Seleziono i collaterali agli eventi della conferenza. --%>
     <sql:statement id="statementD" conn="conn1">
     <sql:query>
	      SELECT * FROM possiede WHERE nome='<%=pageContext.getAttribute("nome")%>'
		  AND data='<%=pageContext.getAttribute("data")%>'
     </sql:query>
     <sql:resultSet id="rsD">
	      <sql:getColumn position="3" to="nome1" scope="page" />
          <sql:getColumn position="4" to="data1" scope="page" />

          <%-- Annidamento 2. Select dei collaterali a cui partecipo. --%>
          <sql:statement id="statementE" conn="conn1">
	      <sql:query>
	           SELECT * FROM partecipa WHERE utente_id='<%= request.getParameter("utente_id") %>'
			   AND nome='<%=pageContext.getAttribute("nome1")%>'
               AND data='<%=pageContext.getAttribute("data1")%>'
          </sql:query>
          <sql:resultSet id="rsE">
	           <sql:getColumn position="2" to="nome_delete" scope="page" />
               <sql:getColumn position="3" to="data_delete" scope="page" />

		       <%-- Annidamento 3. Preparo l'update dei posti dei collaterali. --%>
               <sql:statement id="statementF" conn="conn1">
	           <sql:query>
	                SELECT * FROM collaterale
                    WHERE nome='<%=pageContext.getAttribute("nome_delete")%>'
			        AND data='<%=pageContext.getAttribute("data_delete")%>'
               </sql:query>
               <sql:resultSet id="rsF">
	                <sql:getNumber position="6" to="posti" scope="page" format="NUMBER"/>
                    <sql:getNumber position="7" to="costo" scope="page" format="NUMBER"/>
               </sql:resultSet>
               <sql:execute ignoreErrors="true" />
               </sql:statement>
               <%-- fine query F, annidamento 3 --%>
		  
               <%
                 posti_vecchi_ev = Integer.parseInt((String)pageContext.getAttribute("posti"));
                 out.print("Collaterale: posti vecchi disponibili: " + posti_vecchi_ev + "<br />");
                 posti_nuovi_ev = posti_vecchi_ev + 1;
                 out.print("Collaterale: posti nuovi disponibili: " + posti_nuovi_ev + "<br />");
               %>
		  
		       <%-- Annidamento 3. Tento l'update dei posti dei collaterali. --%>
               <sql:statement id="statementG" conn="conn1">
	           <sql:query>
	                UPDATE collaterale SET posti_disponibili='<% out.print(posti_nuovi_ev); %>'
                    WHERE nome='<%=pageContext.getAttribute("nome_delete")%>'
                    AND data='<%=pageContext.getAttribute("data_delete")%>'
               </sql:query>
               <sql:execute ignoreErrors="true" />
               </sql:statement>
               <%-- fine query G, annidamento 3 --%>

               <%-- Annidamento 3. Cancello la partecipazione ai collaterali. --%>
               <sql:statement id="statementH" conn="conn1">
	           <sql:query>
	                DELETE FROM partecipa WHERE utente_id='<%= request.getParameter("utente_id") %>'
			        AND nome='<%=pageContext.getAttribute("nome_delete")%>'
                    AND data='<%=pageContext.getAttribute("data_delete")%>'
               </sql:query>
               <sql:execute ignoreErrors="true" />
               </sql:statement>
               <%-- fine query H, annidamento 3 --%>

               <%-- Annidamento 3. Preparo l'update della spesa dell'utente x i collaterali. --%>
               <sql:statement id="statementI" conn="conn1">
               <sql:query>
                    SELECT * FROM utente WHERE utente_id='<%= request.getParameter("utente_id") %>'
               </sql:query>
               <sql:resultSet id="rsI">
                    <sql:getNumber position="8" to="spesa" scope="page" format="NUMBER"/>
               </sql:resultSet>
               <sql:execute ignoreErrors="true" />
               </sql:statement>
          
               <% if (autore.equals("FALSE")) {
                      costo = Float.parseFloat((String)pageContext.getAttribute("costo"));
                      spesa_tot_vecchia = Float.parseFloat((String)pageContext.getAttribute("spesa"));
                      spesa_tot_nuova = spesa_tot_vecchia - costo;
                      out.print("Costo: " + costo + "<br />");
                      out.print("spesa_tot_vecchia: " + spesa_tot_vecchia + "<br />");
                      out.print("spesa_tot_nuova: " + spesa_tot_nuova + "<br />");
                     }
                else {
                      costo = Float.parseFloat((String)pageContext.getAttribute("costo"));
                      spesa_tot_vecchia = Float.parseFloat((String)pageContext.getAttribute("spesa"));
                      spesa_tot_nuova = spesa_tot_vecchia - (costo - ((costo * 20) / 100));
                      out.print("Costo: " + costo + "<br />");
                      out.print("spesa_tot_vecchia: " + spesa_tot_vecchia + "<br />");
                      out.print("spesa_tot_nuova: " + spesa_tot_nuova + "<br />");
                     }
              %>

              <%-- Annidamento 3. Tento l'update della spesa dell'utente x i collaterali. --%>
              <sql:statement id="statementL" conn="conn1">
              <sql:query>
	               UPDATE utente SET spesa_tot ='<% out.print(spesa_tot_nuova); %>'
	               WHERE utente_id='<%= request.getParameter("utente_id") %>'
              </sql:query>
              <sql:execute ignoreErrors="true" />
              </sql:statement>
              <%-- fine annidamento 3. Update della spesa dell'utente x i collaterali. --%>

          </sql:resultSet>
          <sql:execute ignoreErrors="true" />
          </sql:statement>
          <%-- fine query E, annidamento 2 di select dei collaterali a cui partecipo --%>

     </sql:resultSet>
     <sql:execute ignoreErrors="true" />
     </sql:statement>
     <%-- fine query D, annidamento 1 di selezione di collaterali agli eventi della conferenza --%>

     <%-- Annidamento 1. Select degli eventi che ho scelto. --%>
     <sql:statement id="statementM" conn="conn1">
	 <sql:query>
	      SELECT * FROM scelto WHERE utente_id='<%= request.getParameter("utente_id") %>'
          AND nome='<%=pageContext.getAttribute("nome")%>'
          AND data='<%=pageContext.getAttribute("data")%>'
     </sql:query>
     <sql:resultSet id="rsM">
	      <sql:getColumn position="2" to="nome_delete" scope="page" />
          <sql:getColumn position="3" to="data_delete" scope="page" />

          <%-- Annidamento 2. Preparo l'update dei posti degli eventi. --%>
          <sql:statement id="statementN" conn="conn1">
	      <sql:query>
	           SELECT * FROM evento WHERE nome='<%=pageContext.getAttribute("nome_delete")%>'
               AND data='<%=pageContext.getAttribute("data_delete")%>'
          </sql:query>
          <sql:resultSet id="rsN">
	           <sql:getNumber position="6" to="posti" scope="page" format="NUMBER"/>
               <sql:getNumber position="7" to="costo" scope="page" format="NUMBER"/>
          </sql:resultSet>
          <sql:execute ignoreErrors="true" />
          </sql:statement>
          <%-- fine query N, annidamento 2 --%>
		  
          <%
            posti_vecchi_ev = Integer.parseInt((String)pageContext.getAttribute("posti"));
            out.print("Evento: posti vecchi disponibili: " + posti_vecchi_ev + "<br />");
            posti_nuovi_ev = posti_vecchi_ev + 1;
            out.print("Evento: posti nuovi disponibili: " + posti_nuovi_ev + "<br />");
          %>

          <%-- Annidamento 2. Tento l'update dei posti degli eventi. --%>
          <sql:statement id="statementO" conn="conn1">
	      <sql:query>
	           UPDATE evento SET posti_disponibili='<% out.print(posti_nuovi_ev); %>'
               WHERE nome='<%=pageContext.getAttribute("nome")%>'
               AND data='<%=pageContext.getAttribute("data")%>'
          </sql:query>
          <sql:execute ignoreErrors="true" />
          </sql:statement>
          <%-- fine query O, annidamento 2 --%>

          <%-- Annidamento 2. Cancello la scelta degli eventi. --%>
          <sql:statement id="statementP" conn="conn1">
	      <sql:query>
	           DELETE FROM scelto WHERE utente_id='<%= request.getParameter("utente_id") %>'
               AND nome='<%=pageContext.getAttribute("nome_delete")%>'
               AND data='<%=pageContext.getAttribute("data_delete")%>'
          </sql:query>
          <sql:execute ignoreErrors="true" />
          </sql:statement>
          <%-- fine query P, annidamento 2 --%>

         <%-- Annidamento 2. Tento l'update della spesa dell'utente x gli eventi. --%>
         <sql:statement id="statementQ" conn="conn1">
         <sql:query>
              SELECT * FROM utente WHERE utente_id='<%= request.getParameter("utente_id") %>'
         </sql:query>
         <sql:resultSet id="rsQ">
              <sql:getNumber position="8" to="spesa" scope="page" format="NUMBER"/>
         </sql:resultSet>
         <sql:execute ignoreErrors="true" />
         </sql:statement>

         <% if (autore.equals("FALSE")) {
                costo = Float.parseFloat((String)pageContext.getAttribute("costo"));
                spesa_tot_vecchia = Float.parseFloat((String)pageContext.getAttribute("spesa"));
                spesa_tot_nuova = spesa_tot_vecchia - costo;
                out.print("Costo: " + costo + "<br />");
                out.print("spesa_tot_vecchia: " + spesa_tot_vecchia + "<br />");
                out.print("spesa_tot_nuova: " + spesa_tot_nuova + "<br />");
               }
          else {
                costo = Float.parseFloat((String)pageContext.getAttribute("costo"));
                spesa_tot_vecchia = Float.parseFloat((String)pageContext.getAttribute("spesa"));
                spesa_tot_nuova = spesa_tot_vecchia - (costo - ((costo * 20) / 100));
                out.print("Costo: " + costo + "<br />");
                out.print("spesa_tot_vecchia: " + spesa_tot_vecchia + "<br />");
                out.print("spesa_tot_nuova: " + spesa_tot_nuova + "<br />");
               }
         %>

         <sql:statement id="statementR" conn="conn1">
         <sql:query>
	          UPDATE utente SET spesa_tot ='<% out.print(spesa_tot_nuova); %>'
	          WHERE utente_id='<%= request.getParameter("utente_id") %>'
         </sql:query>
         <sql:execute ignoreErrors="true" />
         </sql:statement>
         <%-- fine query R, annidamento 21. Update della spesa dell'utente x gli eventi. --%>

     </sql:resultSet>
     <sql:execute ignoreErrors="true" />
     </sql:statement>
     <%-- fine query annidata M, annidamento 1 --%>

</sql:resultSet>
<sql:execute ignoreErrors="true" />
</sql:statement>
<%-- fine query C, annidamento 0 di selezione degli eventi della conferenza specifica. --%>

<%-- Annidamento 0 per cancellare l'iscrizione ad una conferenza --%>
<sql:statement id="statementS" conn="conn1">
<sql:query>
	 DELETE FROM iscritto WHERE utente_id='<%= request.getParameter("utente_id") %>'
	 AND argomento='<%=request.getParameter("argomento")%>'
     AND scadenza='<%=request.getParameter("scadenza")%>'
</sql:query>
<sql:execute ignoreErrors="true" />
</sql:statement>
<%-- fine query S, annidamento 0 --%>

<h3 align="center"><font color="green">Utente cancellato dalla conferenza.</font></h3>
<%-- <meta http-equiv="Refresh" content="5;
url=http://localhost:8080/www/j2ee-sysconf/menu.jsp" /> --%>
</fieldset>
</div>

<sql:closeConnection conn="conn1"/>
<br />
<jsp:include page="bottom.jsp" flush="true" />
... come previsto ero un problema di annidamenti, mi son messo li con pazienza a tirare le righe da annidamento ad annidamento ... uno sbattimento!

Spero serva a qualcuno questa mia creatura, mi sa che è l'unica sul forum, tenetevela preziosa!!!
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti Test in super anteprima di Navimow i220 LiDAR: i...
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto Dark Perk Ergo e Sym provati tra wireless, softw...
MrBeast entra nel fintech: Beast Industr...
Arrivano i nuovi server Bare Metal 2026 ...
Stop alla distribuzione dei driver di st...
Serie TV God of War: scelto anche l'atto...
Riot Games dimezza il team di 2XKO dopo ...
FRITZ! in super offerta su Amazon: ripet...
L'AI doveva farci lavorare meno: e se st...
DREAME X50 Ultra Complete a 899€ su Amaz...
Rimodulazione TIM: aumenti fino a 2,99 e...
Amazon sblocca i prezzi con coupon e sco...
Action cam Insta360 in super offerta su ...
Fallout 76 Sorgenti Brucianti: tanta car...
Scope elettriche super potenti a confron...
Tutti i Google Pixel 10 sono scontati su...
Report Legambiente 2025: Palermo, Milano...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 12:59.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v