IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

[JDBC] inserer une date


Sujet :

JDBC Java

  1. #1
    Membre régulier Avatar de zozolh2
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2003
    Messages : 128
    Points : 106
    Points
    106
    Par défaut [JDBC] inserer une date
    Bonjour,

    j'ai une date de la forme '01/06/2004' en format string.
    qd je fais une requete par l'intermédaire d'un logiciel avec ; INSERT INTO maTable ('','truc','01/06/2004');
    tout ce passe bien (ma bdd est oracle)

    mais lorsque je fais la même chose avec JDBC, il me génére une exception;
    --> SQLException updateQuery(): java.sql.SQLException: ORA-01830: date format picture ends before converting entire input string

    pkoi dans un cas il le prend et pas dans l'autre???

    merci

  2. #2
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Je suppose que ta colonne est au format DATE oracle.

    essai ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO maTable ('','truc',to_date('01/06/2004', 'DD/MM/YYYY'));

  3. #3
    Membre régulier Avatar de zozolh2
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2003
    Messages : 128
    Points : 106
    Points
    106
    Par défaut
    vi j'ai trouvé ca aussi,
    ca marche tjs dans mon editeur sql, mais dès que je la lance avec JDBC, ca rame, mais il me génère pas d'erreurs!!!
    et l'insertion ne se fait pas:

    INSERT INTO TIG_ACTION VALUES ('GESF_04_4','201','1','0','99999999','A0004','null','fgsgdfgsdg','Q','null','0',TO_DATE('04/05/2004','DD/MM/YYYY'),TO_DATE('05/05/2004','DD/MM/YYYY'),'0');

  4. #4
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    envoie ton code stp...

  5. #5
    Membre régulier Avatar de zozolh2
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2003
    Messages : 128
    Points : 106
    Points
    106
    Par défaut
    //classe interface avec la BDD

    public boolean updateQuery(String query) {

    DBconnect();

    try {
    Statement st = con.createStatement();
    int rs = st.executeUpdate(query);
    }
    catch(SQLException e1) {
    System.out.println("--> SQLException updateQuery(): " + e1 +"in :\n"+query );
    return false;
    }
    finally
    {
    DBdeconnect();
    }
    return true;
    }

    //classe de la requete
    /**
    * ajouter une action dans la table 'action'
    * @return boolean
    */
    public boolean addAction()
    {
    String query = "INSERT INTO TIG_ACTION" +
    " VALUES ('"+lot.getCodeLot()+"','"+noOrdreLivrable+"','"+rangLivrable+"','"+pilote+"','"+
    acteur+"','"+codeAction+"','"+titreAction+"','"+objetAction+"','"+origineAction+"','"+
    sourceAction+"','"+etatAction+"',TO_DATE('"+dateDebutAction+"','DD/MM/YYYY'),TO_DATE('"+dateFinAction+"','DD/MM/YYYY'),'"+
    degreAvancement+"')";

    System.out.println(query);

    AccesBdd accesBdd = new AccesBdd();
    return (accesBdd.updateQuery(query));
    }

    //fichier jsp recuperant les params et demandant l'execution de la requete
    <jsp:useBean id="action" scope="request" class="gestion_projet.Action" />
    <jsp:useBean id="lot" scope="request" class="gestion_projet.suivi_qualite.Lot" />
    <%
    lot.setCodeLot(request.getParameter("code"));
    action.setLot(lot);
    action.setNoOrdreLivrable(Integer.parseInt(request.getParameter("ordre")));
    action.setRangLivrable(Integer.parseInt(request.getParameter("rang")));
    action.setActeur(Integer.parseInt(request.getParameter("acteurEntre")));
    action.setDateDebutAction(request.getParameter("dateDebutActionEntree"));
    action.setDateFinAction(request.getParameter("dateFinActionEntree"));
    action.setObjetAction(request.getParameter("objetEntre"));

    //la source de l'action est le suivi qualité: 'Q'
    action.setOrigineAction('Q');

    //le degres d'avancement est a 0
    action.setDegreAvancement(0);

    //l'état de l'action
    action.setEtatAction(0);

    //on recupere le code de la derniere action et on obtient la nouvelle
    action.getAndSetNumAction();

    //on enregistre l'action dans la table 'action'
    if (action.addAction()==true)
    {
    %>Votre action a été enregistré sous le code : <%=action.getCodeAction()%><br><%
    }

  6. #6
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Et le commit il est où ???

  7. #7
    Membre régulier Avatar de zozolh2
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2003
    Messages : 128
    Points : 106
    Points
    106
    Par défaut
    euh..il est obligatoire celui là? lol

  8. #8
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Deux solutions:

    - soit tu utilises les javax.transaction.UserTransaction et tu fais un commit global sur toutes les requêtes d'une tansaction (ou un rollback)

    - soit tu fais un commit sur chaque java.sql.Connection (ou éventuellement un rollback en cas d'erreur).

    Si le commit n'est pas là: le comportement est hasardeux, sachant que suivant comment est pramaétrée la base ou ton serveur la connection peut être validée au bout d'un certain temps (time out de la connection) ou non...

    Dans la plupart des cas rien n'est fais lorsque ta connection n'est pas validée, donc ta mise à jour est perdue...

    a+

  9. #9
    Membre régulier Avatar de zozolh2
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2003
    Messages : 128
    Points : 106
    Points
    106
    Par défaut
    merci beaucoup, ca marche now, je pensais pas que le commit pouvait etre a l'origine de l'erreur.


  10. #10
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Comme quoi, souvent ce sont les choses les plus évidentes ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Inserer une date d'une table dans une autre table
    Par petitetre dans le forum Langage SQL
    Réponses: 8
    Dernier message: 18/04/2007, 20h16
  2. Réponses: 13
    Dernier message: 27/12/2006, 17h52
  3. [T-SQL] insérer une date et une heure ?
    Par ionix dans le forum Adaptive Server Enterprise
    Réponses: 5
    Dernier message: 10/11/2006, 15h11
  4. inserer une date en ASP dans une base ACCESS
    Par link39001 dans le forum ASP
    Réponses: 7
    Dernier message: 17/05/2006, 13h13
  5. insere une date dans un formulaire
    Par lepeintre dans le forum ASP
    Réponses: 5
    Dernier message: 13/05/2005, 10h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo