Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete implementa due bracci estensibili, per spazzola e moccio, che si spingono ben oltre quanto visto sino ad oggi permettendo una pulizia di casa ancor più capillare e precisa
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati
La tecnologia SQD-Mini LED di TCL arriva sul taglio da 65 pollici con la serie C8L: 2040 zone, pannello WHVA 2.0 e un picco che alle rilevazioni delle sonde tocca i 4400 nit nel profilo Filmmaker e un HDR quasi perfetto
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro
Wireless 2.4 GHz, Bluetooth 5.4, cancellazione attiva del rumore, design pieghevole e un'autonomia che mette in imbarazzo prodotti che costano il doppio. Le Maestro 500 non eccellono in nulla, ma offrono tutto. E a questo prezzo è difficile chiedere di più
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-08-2005, 16: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 16:15.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 09-08-2005, 16: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, 16: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 16:37.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 27-08-2005, 19: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, 20: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, 21: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, 22: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, 08: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, 09: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 09:20.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2005, 09: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, 13: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, 14: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, 16: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 16:56.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2005, 18: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, 19: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 19:30.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2005, 19: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, 19: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, 20: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, 20: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, 17: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


Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più Dreame X60 Pro Ultra Complete: i bracci si esten...
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati TCL 65C8L, la recensione del SQD-Mini LED da 440...
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro MSI Maestro 500 Wireless: ANC e 90 ore di autono...
NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine NL-LC1 è il primo dissipatore a liquido A...
Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con Android 15 e penna, dal prezzo super Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con ...
NVIDIA mostra una comunità di rob...
Sony annuncia LYTIA L910, arriva il sens...
Ericsson, il 5G è l’infrastruttur...
Marvell punta tutto su TSMC A14: sar&agr...
Hyundai a un passo dal controllo totale ...
Questo SSD vecchio 16 anni ha resistito ...
Monopattino elettrico Xiaomi in offerta:...
Microsoft usa le capre di Age of Empires...
Microsoft conferma bug nel Cestino in tu...
Accenture crolla del 20% in borsa, il pe...
ASUS Pro WS W890E-SAGE SE: sette PCIe 5....
Attenzione al prezzo di questa TV Hisens...
Chrome sbeffeggiato da Ballmer nel 2009:...
Un gioco Mac compatibile con Apple Silic...
La batteria allo stato solido di Honda s...
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: 05:51.


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