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 :

Probleme d'ajout de DATE dans BD access


Sujet :

JDBC Java

  1. #1
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut Probleme d'ajout de DATE dans BD access
    Bonjour à tous..
    Lorsque je créé un nouvel enregistrement dans ma base de donnée ACCESS , tout ce passe correctement , ensuite , lorsque j'y ajoute la date , voici l'erreur que je rencontre :
    java.sql.SQLException: [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe (opérateur absent) dans l'expression '25/04/2008 12:42:05'.
    at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
    Lorsque je regarde dans la BD , le format est de type date et s'affiche de la même manière..

  2. #2
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    Tu peux nous mettre du code stp ?

  3. #3
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut
    oui biensure..

    maBD.createEnreg("insert into Article (titre_art,info_art,cat_art,prix_art,frais_art," +
    "idvend_art,date_in,nbjour_art) VALUES " +
    "(' " + query.getText() + "','" + infos.getText() + "','" + choix + "'," +
    100 + "," + 10 + "," + moi.id + "," + maDate.getDate() + "," + nbJours+")");
    Si je retire date_in & maDate.getDate() ça fonctionne correctement..

    voilà le String de ma date ..
    public String toString()
    {
    DecimalFormat deuxChiffres = new DecimalFormat("00");
    return deuxChiffres.format(jour)+"/"+deuxChiffres.format(mois)+"/"+deuxChiffres.format(annee) + " "
    + deuxChiffres.format(heures) +":"+deuxChiffres.format(minutes) +
    ":" + deuxChiffres.format(secondes);
    }
    les variables sont issues de :
    public Date getDate()
    {
    maDate = new Date(gc.get(GregorianCalendar.DAY_OF_MONTH)
    ,gc.get(GregorianCalendar.MONTH)+1
    ,gc.get(GregorianCalendar.YEAR)
    ,gc.get(GregorianCalendar.HOUR_OF_DAY)
    ,gc.get(GregorianCalendar.MINUTE)
    ,gc.get(GregorianCalendar.SECOND));

    return maDate;
    }
    Un exemple de date_in dans ma BD : 11/04/2008 15:10:00

  4. #4
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    Alors pas mal de remarques à faire...
    Pour des chaînes longues, n'utilise jamais les String mais plutôt des StringBuilder.
    Pour les requêtes SQL utilise plutôt des PreparedStatement, au passage ça résoudra ton problème d'insertion de Date, puisque tu inséreras une Date et non pas une String dont le formatage peut ne pas être compris.
    Pour le formatage de Date, il y a SimpleDateFormat, et pour obtenir une Date à partir d'un Calendar il y a getTime.

  5. #5
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut
    Et bien merci , pas mal à apprendre encore à ce que j'vois
    J'vais expérimenter tout ça !! merci

  6. #6
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    Ba de rien, bon courage N'oublie pas , n'hésite pas à revenir en cas de problème...

  7. #7
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut
    Si j'peux me permettre une petite question..
    J'ai essayer ceci :
    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");

    Date myDate = sdf.parse(sdf.format(maDate.gc.getTime()));
    La méthode format me permet bien d'avoir la date comme je la désire mais il me la converti en String..
    J'ai essayé d'utilisé le parse pour la reconvertir en Date mais c'est sans succès..
    Ce n'est pas comme ça que je dois procédé??

    Merci d'avance.

    [EDIT]
    Wow super utile le preparedStatement..
    Par contre toujours le probleme de date

  8. #8
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    Toi tu as juste besoin de faire ça non ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Date myDate = maDate.gc.getTime();

  9. #9
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut
    Citation Envoyé par remika Voir le message
    Toi tu as juste besoin de faire ça non ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Date myDate = maDate.gc.getTime();
    Je ne pense pas car dans ma BD la date s'affiche comme le format que j'ai mentionné plus haut..
    Mais j'ai malgré tout tenté ce que tu m'as dis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (type DATE)maBonneDate =  maDate.gc.getTime();
    seulement lorsque je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    statement.setDate(7, fen.maBonneDate);
    J'ai cette erreur :
    The method setDate(int, Date) in the type PreparedStatement is not applicable for the arguments
    (int, Date)
    Car getTime() retourne une java.util.Date alors que le setDate attends une java.sql.Date..
    J'ai essayé plusieurs trucs sans succès.. je déprime

  10. #10
    Membre habitué
    Profil pro
    Devops
    Inscrit en
    Août 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Devops

    Informations forums :
    Inscription : Août 2006
    Messages : 107
    Points : 139
    Points
    139
    Par défaut
    Citation Envoyé par libuma Voir le message
    Car getTime() retourne une java.util.Date alors que le setDate attends une java.sql.Date..
    J'ai essayé plusieurs trucs sans succès.. je déprime
    ATTENTION JE N'Y CONNAIS RIEN MAIS : T'as essayé le cast en java.sql.Date (car java.sql.Date herite de java.util.Date cf JavaDoc) ?

  11. #11
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    Tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    new java.sql.Date(ta_date.getTime());

  12. #12
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut
    Citation Envoyé par remika Voir le message
    Tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    new java.sql.Date(ta_date.getTime());
    Plus d'erreur contre lorsque j'essaye d'ajouter un article..

    java.sql.SQLException: [Microsoft][Pilote ODBC Microsoft Access]Fonction optionnelle non installée
    Que c'est compliqué les dates !!!

    Merci beaucoup pour l'aide en tout cas

  13. #13
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    Essaie avec un setTimestamp on sait jamais.

  14. #14
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut
    C'était dû à une relation entre deux tables de ma base de donnée .. encore un truc sur lequel je vais devoir me prendre la tête

    Par contre il m'ajoute la date correctement ,il n'y introduit pas l'heure par contre
    Vu que c'est un programme d'achat-vente je vais en avoir besoin ^^

    Encore merci

  15. #15
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    Peut-être qu'un setTimeStamp t'enregistreras la totalité de la date.

  16. #16
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut
    Pour utiliser ça , j'ai besoin de lui fournir un objet de type TimeStamp à qui je dois fournir des millisecondes etc.. ça a l'air bizare..
    Mon plus gros problème maintenant c'est de trouver ce probleme de relations entre tables..

    Vive la programmation

  17. #17
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    Pour les millisecondes c'est normal, souvent une date est stockée en ms depuis le 1er janvier 1970.

  18. #18
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut
    Citation Envoyé par remika Voir le message
    Pour les millisecondes c'est normal, souvent une date est stockée en ms depuis le 1er janvier 1970.
    Génial t'as raison c'est encore mieux , je récupère aussi l'heure!!
    Je n'ai malheureusement pas eu le temps de le tester plus tôt grrr , d'autres projets en cours!

    Merci beaucoup

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/07/2009, 18h41
  2. Probleme ajout d'enregistrement dans bdd Access
    Par freerider74 dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 19/11/2008, 10h53
  3. insertion date dans état access 2003
    Par dupcam dans le forum IHM
    Réponses: 11
    Dernier message: 28/08/2007, 20h44
  4. probleme avec la format date dans ireport
    Par 7rouz dans le forum iReport
    Réponses: 3
    Dernier message: 09/07/2007, 08h54
  5. probleme d'insertion de date dans une table
    Par manplum dans le forum C++Builder
    Réponses: 3
    Dernier message: 23/04/2007, 18h14

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