Je galère pour pouvoir recuperer une entrée (entrée prealablement) dans ma base de données ms access en fonction de la date à laquelle elle a été entrée.

Mon code est le suivant:

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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
 
 
public class test {
 
	/**
         * @param args
         */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		DataBaseManagement dbm = new DataBaseManagement();
		try {
			dbm.ConnectionToDB("blankMSADB");
			dbm.UpdateDB("CREATE TABLE test(ID VARCHAR(20),D DATETIME)");
			Timestamp ts = new Timestamp(new Date().getTime());
            DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
            String d = dateFormat.format(ts);
            dbm.UpdateDB("INSERT INTO test (ID,D) VALUES ('test','" + d + "')");
            ResultSet result = dbm.ReadDB("SELECT D FROM test WHERE ID='test' ");
            result.next();
            System.out.println(result.getTimestamp("D"));
            result = dbm.ReadDB("SELECT ID FROM test WHERE D=#" + d + "# ");
            result.next();
            try {
            	System.out.println("essai");
            	System.out.println(result.String("ID"));
            }
            catch(Exception e) {
            	System.out.println("essai rate");
            }
 
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		finally {
			dbm.CloseDB();
		}
	}
}
Les fonctions connectionToDB, readDB, updateDB et closeDB sont juste des fonctions pour eviter d'avoir a ecrire statement.excute... etc.

Et la console m'affiche:
2008-08-01 18:22:29.0
essai
essai rate

Donc ma table est bien créée (j'ai verifié en ouvrant avec MS Access) mais le WHERE D=#" + d + "# ne semble mener nulle part et je ne comprends pas pourquoi car la chaine de caracteres d est exactement la meme que celle du champ D lorsque j'ouvre ma base de donnée dans MS Access d'Office.

Si vous avez des idées je suis preneur car je comprends vraiment pas ce que je fais de mal.

Merci