Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Gestire data per inserimento in campo record

    salve, ho un problema nella gestione di una data che devo inserire con una query " INSERT"
    in un record di un database Access, vi posto lo script:

    codice:
     
               // costruisco la stringa, day, month e year sono int e ritornano da un metodo      che  valida le date
    
              String dtinc = ""+ day +"/"+month+"/"+year;
    
              // definisco la forma della data
              DateFormat dt = new SimpleDateFormat("dd/MM/yyyy");
             
               /** trasformo in data e qui mi da il problema, pechè mi propone il Cast 
                *   e mi dice che trova java.Util.Date dove è richiesto java.sql.Date
               */
              Date dti = dt.parse(dtinc);
    spero di essere stato chiaro, potete aiutarmi, saluti Roberto

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Gestire data per inserimento in campo record

    Originariamente inviato da RobertoBel
    codice:
     
               /** trasformo in data e qui mi da il problema, pechè mi propone il Cast 
                *   e mi dice che trova java.Util.Date dove è richiesto java.sql.Date
               */
              Date dti = dt.parse(dtinc);
    spero di essere stato chiaro, potete aiutarmi, saluti Roberto
    Il cast non sarebbe affatto corretto. java.sql.Date estende java.util.Date (quindi il cast è lecito per il compilatore) ma l'oggetto che hai è realmente un java.util.Date, quindi il cast lancerebbe ClassCastException!

    Un java.sql.Date si può costruire passando i millisecondi .... e i millisecondi li puoi ottenere da un java.util.Date.

    codice:
    java.util.Date ud = dt.parse(......);
    java.sql.Date sd = new java.sql.Date(ud.getTime());
    Tutto qua.

    Nota: ho qualificato completamente entrambe le classi solo per chiarezza. Uno dei due lo puoi usare come nome semplice "Date", a patto di importarlo. L'altro lo devi per forza mettere completamente qualificato. Scegli tu.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3

    Gestire data per inserimento in campo record

    ciao ho usato il tuo script:

    codice:
     java.util.Date ud = dt.parse(......);
    java.sql.Date sd = new java.sql.Date(ud.getTime());
    il problema è che mi ritorna la data come aaaa-mm-gg, invece io devo registrarla in access come gg/mm/aaaa, si puo correggere.

    comunque grazie per le risposte sempre puntuali, saluti Roberto

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Gestire data per inserimento in campo record

    Originariamente inviato da RobertoBel
    il problema è che mi ritorna la data come aaaa-mm-gg, invece io devo registrarla in access come gg/mm/aaaa, si puo correggere.
    Ma come hai composto la query di insert?? Perché se hai usato un Statement e quindi hai composto interamente tu la stringa di query, puoi avere problemi. Perché vuol dire che hai concatenato nella stringa il java.sql.Date e il suo toString() fornisce la data esclusivamente in formato yyyy-mm-dd. Se non è quello il formato appropriato per il campo, ovviamente è lì il problema.

    Se componi interamente tu la stringa di query, tutto il giro di parse() e dei Date è inutile. Hai i campi giorno/mese/anno separati, no? Allora concatenali nella stringa per formare la data nel formato richiesto.

    Altrimenti usa un PreparedStatement e passa il parametro con setDate() che riceve un java.sql.Date.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5

    Gestire data per inserimento in campo record

    grazieee.
    saluti Roberto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.