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
Version imprimable
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
Salut,
tu peux les enregistrer sous forme de String après avoir appliquer un formatage.
ca ne fonctionne pas , voici un bout de mon code
et voici l'erreur que j'aiCode:
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);
MerciCode:
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
Salut,
pour être clair,est de type String.Code:simpleFormat.format(date_actuelle)
par contre, peux tu m'informer sur la méthodedans ton code ? :roll:Code:select(.....,....,....,)
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
Citation:
query[ SELECT count(*) FROM tables WHERE date >= 16/10/2010 14:25:27; ]
Comment tu as déclaré la colonne date dans La table BD ?
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.
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
Merci, C'est bon j'ai pigé le truc, en faite il faut mettre la date entre deux #.
Et ça fonctionne trop bien.Citation:
query[ SELECT count(*) FROM tables WHERE date >= #16/10/2010 14:25:27#; ]
J'aimerais bien savoir d'où tu t'es informé car j'aimerais bien comprendre le truc !
Ou alors tu utilises des PreparedStatement ce qui t'évite tout ce genre de problèmes
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 :cry:
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
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 :
Je veut simplement inserer la valeur contenant dans dbPrenom (qui est de type String)Code:Insert INTO infosinscri VALUES ("+dbCin+",'dbPrenom'....)
si dbCin et dbPrenom sont des variables en String dans ton code:
Code:
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();