Bonjour,
J'ai un petit problème que je n'arrive pas à comprendre et à résoudre.
Habituellement j'utilise des bases MYSQL mais pour un projet bien précis, je dois me connecter à une base MS/Access (logiciel que je ne connais pas très bien).
Cela marche plutôt bien sauf lorsque j'essaie de récupérer quelques dates. Lorsque les dates sont supérieures à 01/01/1752 en utilisant :
je n'ai aucun problème, mais pour toutes les dates inférieures, par exemple 1748 la valeur retournée est complètement fausse. Dans ce cas présent si la date dans la base est 01/01/1748 la date retournée est 31/12/1747. Comme si il retirait une journée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Date d = rs.Date("Zone_Date"); String madate = d.toString();
Pire, si la date est 01/01/1111 la date retournée est 28/07/1110.
Bien sûr lorsque je visualise la table avec MS/Access la date affichée est correcte (donc la base est bonne).
Cela peut sembler bizarre que j'utilise ces dates du moyen âge ou de la révolution, mais il s'agit d'un projet pour une thèse de doctorat en histoire.
Je subodore un problème avec le driver ODBC mais je n'en suis pas certain.
Voici comment je me connecte à cette base :
Merci d'avance pour tout conseil ou suggestion.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 public static java.sql.Connection getConnexionACCESS() { if (cnx!=null) return cnx; try { String dataSourceName = "MaBase"; String dbURL = "jdbc:odbc:" + dataSourceName; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); cnx = java.sql.DriverManager.getConnection(dbURL, "",""); return cnx; } catch (Exception ex) {System.out.println(ex.toString()); return null; } }
Gégé
Partager