Newsgroup: it.comp.java
Titolo: ci date un'occhita voi?

ciao,non mi riesco a tirare fuori dal tunnel dove è che sbaglio :
 Statement st = con.createStatement();
      String mese = new java.util.Date();
 if( mese.charAt(5)=="M")
 {
   mese="May";
   }
   String sqlMese= "select * from movimento where
conto='"+session.getAttribute("num_conto")+"' and Datamov LIKE
'____"+mese+"______________________'";
F:\Programmi\Apache Software Foundation\Tomcat
5.0\work\Catalina\localhost\progectbank\org\apache\jsp\Movimenti_jsp.java:65
: incompatible types
found   : java.util.Date
required: java.lang.String
      String mese = new java.util.Date();
An error occurred at line: 34 in the jsp file: /Movimenti.jsp
Generated servlet error:
F:\Programmi\Apache Software Foundation\Tomcat
5.0\work\Catalina\localhost\progectbank\org\apache\jsp\Movimenti_jsp.java:66
: unexpected type
required: variable
found   : value
	if( mese.charAt(5)="M")
                       ^
2 errors

 if( mese.charAt(5)="M")
Il confronto va fatto con '==', non con '='!!!! (ma scusa, nel codice
sorgente che hai riportato all'inizio non è già corretto?)
Prima di tutto, fossi in te ristrutturerei la tabella "movimento", usando
per il campo "Datamov" il tipo DATA previsto dal tuo DB Engine.
Infine... usa le query parametriche!!!
Ti faccio un esempio: volendo trovare tutti i movimenti effettuati in maggio
2004
 ...
 //impostiamo i limiti di data entro cui vogliamo effettuare la ricerca
 java.util.Calendar lower =
    new java.util.GregorianCalendar(2004,Calendar.MAY,1,0,0,0);
 java.util.Calendar upper =
    new java.util.GregorianCalendar(2004,Calendar.MAY,31,23,59,59);
 
 //ricaviamo i corrispondenti oggetti adatti per la ricerca in SQL
 java.sql.Date lowerDate=new java.sql.Date(lower.getTimeInMillis);
 java.sql.Date upperDate=new java.sql.Date(upper.getTimeInMillis);
 
 //prepariamo la statement di ricerca (conn rappresenta una connessione
 //al tuo database)
 java.sql.PreparedStatement pstat = conn.prepareStatement
   ("SELECT * FROM movimento WHERE conto=? AND Datamov>=? AND Datamov<=?");
 //I punti interrogativi rappresentano segnaposti per i parametri SQL
 pstat.setString(1,session.getAttribute("num_conto"));
 pstat.setDate(2,lowerDate);
 pstat.setDate(3,upperDate);
 
 //Eseguiamo la query...
 java.sql.ResultSer rset=pstat.executeQuery();
 ...
 
Il resto lo sai, vero?
-- 
Fermiamo Scientology prima che sia troppo tardi!!!
http://xenu.com-it.net
  ---  
http://xenu.freewinds.cx
(per rispondere personalmente leva IlDitoDalCulo)

 if( mese.charAt(5)="M")
Il confronto va fatto con '==', non con '='!!!! (ma scusa, nel codice
sorgente che hai riportato all'inizio non è già corretto?)
Prima di tutto, fossi in te ristrutturerei la tabella "movimento", usando
per il campo "Datamov" il tipo DATA previsto dal tuo DB Engine.
Infine... usa le query parametriche!!!
Ti faccio un esempio: volendo trovare tutti i movimenti effettuati in maggio
2004
 ...
 //impostiamo i limiti di data entro cui vogliamo effettuare la ricerca
 java.util.Calendar lower =
    new java.util.GregorianCalendar(2004,Calendar.MAY,1,0,0,0);
 java.util.Calendar upper =
    new java.util.GregorianCalendar(2004,Calendar.MAY,31,23,59,59);
 
 //ricaviamo i corrispondenti oggetti adatti per la ricerca in SQL
 java.sql.Date lowerDate=new java.sql.Date(lower.getTimeInMillis());
 java.sql.Date upperDate=new java.sql.Date(upper.getTimeInMillis());


[CUT]
ok ma ora mi trovo il problema opposto
nell'inserimento della data in automatico al momento della sessione come
faccio???



Perchè non guardi la documentazione di java.util.Calendar ?
con Calendar.getInstance() ottieni un riferimento ad "adesso", poi usi
Calendar.get(...) per ottenere quello che ti serve (il mese?)
   int mese=Calendar.getInstance().get(Calendar.MONTH);
Fai attenzione, l'intero riportato va confrontato solo con le costanti
presenti nella classe Calendar. Non devi usarlo per fare calcoli diretti:
   if (mese==Calendar.APRIL) ... //uso corretto
 
   mese++; //non corretto!!! (rischi di perdere in portabilità)
 
Ci siamo intesi? ;)


 [CUT]
grazie 1000