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 :

BD Access et les dates


Sujet :

JDBC Java

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    217
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 217
    Points : 107
    Points
    107
    Par défaut BD Access et les dates
    Bonjour,

    J'ai un petit problèmes avec les dates, comment mettre des dates de java dans des requêtes pour une base de données Access.

    MercI

  2. #2
    Expert confirmé
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Points : 4 539
    Points
    4 539
    Par défaut
    Salut,
    tu peux les enregistrer sous forme de String après avoir appliquer un formatage.

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    217
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 217
    Points : 107
    Points
    107
    Par défaut
    ca ne fonctionne pas , voici un bout de mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Date date_actuelle = new Date();
    SimpleDateFormat  simpleFormat = new SimpleDateFormat("dd/MM/yyyy HH/mm/ss");
    results = bd_controle.select("count(*)", "tables", "date >= " +  simpleFormat.format(date_actuelle), null);
    et voici l'erreur que j'ai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Erreur: java.sql.SQLException: [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe (opérateur absent) dans l'expression 'date >= 16/10/2010 14:21:49'.
    Erreur: java.lang.NullPointerException
    Merci

  4. #4
    Expert confirmé
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Points : 4 539
    Points
    4 539
    Par défaut
    Salut,

    pour être clair,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    simpleFormat.format(date_actuelle)
    est de type String.

    par contre, peux tu m'informer sur la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select(.....,....,....,)
    dans ton code ?

  5. #5
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    217
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 217
    Points : 107
    Points
    107
    Par défaut
    la fonction select exécute juste une sélection sur la base de donnée, elle fonctionne normalement, la requête qu'elle me crée est la suivante
    query[ SELECT count(*) FROM tables WHERE date >= 16/10/2010 14:25:27; ]

  6. #6
    Expert confirmé
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Points : 4 539
    Points
    4 539
    Par défaut
    Comment tu as déclaré la colonne date dans La table BD ?

  7. #7
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    217
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 217
    Points : 107
    Points
    107
    Par défaut
    La base de données, ce n'est pas moi qui l'a faite mais je sais qu'elle a été faite sous Access, et son type est Date/Heure.

  8. #8
    Expert confirmé
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Points : 4 539
    Points
    4 539
    Par défaut
    Dans ce cas, il faut pas enregistrer la date comme étant une chaine de caractère, elle doit normalement étre de type java.sql.Date

    tu peux utiliser ce code

  9. #9
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    217
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 217
    Points : 107
    Points
    107
    Par défaut
    Merci, C'est bon j'ai pigé le truc, en faite il faut mettre la date entre deux #.

    query[ SELECT count(*) FROM tables WHERE date >= #16/10/2010 14:25:27#; ]
    Et ça fonctionne trop bien.

  10. #10
    Expert confirmé
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Points : 4 539
    Points
    4 539
    Par défaut
    J'aimerais bien savoir d'où tu t'es informé car j'aimerais bien comprendre le truc !

  11. #11
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Ou alors tu utilises des PreparedStatement ce qui t'évite tout ce genre de problèmes

  12. #12
    Membre régulier
    Inscrit en
    Avril 2009
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 133
    Points : 75
    Points
    75
    Par défaut
    Quelle est l'utilité de PreparedStatement Ici svp ?
    car j'ai lu le tuto de la FAQ mais c'est peu de code j'arrive vraiment pas a assimiler

  13. #13
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    De ne pas avoir à se préoccuper du format de la chaine représentant la date dans la requête.

    Et de produire un code bien plus propre et sécurisé vis à vis des injections SQL

  14. #14
    Membre régulier
    Inscrit en
    Avril 2009
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 133
    Points : 75
    Points
    75
    Par défaut
    Merci je comprend, mais j'ai un dernier probleme si ca ne vous gène pas ...
    Je veut tout simplement inserer la valeur d'un String dans ma base
    De cette facon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Insert INTO infosinscri VALUES ("+dbCin+",'dbPrenom'....)
    Je veut simplement inserer la valeur contenant dans dbPrenom (qui est de type String)

  15. #15
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    si dbCin et dbPrenom sont des variables en String dans ton code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    PreparedStatement statement= connection.prepareStatement("insert into infosinscri (nomColonne1, nomColonne2) values (?,?)");
    statement.setString(1,dbCin);
    statement.setString(2,dbPrenom);
    statement.execute();


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

Discussions similaires

  1. soustraction avec les dates avec sql access
    Par deuval dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 04/07/2007, 10h03
  2. Compter les Dates différentes dans une requête Access
    Par maxireus dans le forum Modélisation
    Réponses: 2
    Dernier message: 11/05/2007, 00h02
  3. [VB.NET] Lire les dates d'une bd access dans un form Vb.net
    Par Herlece dans le forum Accès aux données
    Réponses: 6
    Dernier message: 03/01/2006, 09h38
  4. MS Access et TQuery (probleme sur les dates)
    Par Djob dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/06/2004, 14h57
  5. [Interbase] [Access] les dates
    Par AnestheziE dans le forum InterBase
    Réponses: 17
    Dernier message: 26/11/2003, 14h40

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