Προς το περιεχόμενο

[Πρόβλημα] Java-- insert in a date field in access fails


lefterhs

Προτεινόμενες αναρτήσεις

Δημοσ.

>
PreparedStatement stmt2; 
StringBuffer qry = new StringBuffer(1024) ; 
HttpSession ses = req.getSession() ; 
String sFromUser = ses.getAttribute("LoggedID" ).toString() ; 
String sToUser = req.getParameter("ToUser" ) ; 
String sMessage = req.getParameter("Message" ) ; 
int intFromUser = Integer.parseInt(sFromUser) ; 
int intToUser = Integer.parseInt(sToUser); 
int intRead = 0; 
java.util.Date duDate = new java.util.Date(); 
java.sql.Date sqlDate = new java.sql.Date(duDate.getTime()); 

qry.append("INSERT INTO MESSAGE(FromUser, ToUser, Date, Message, Read) VALUES(?,?,?,?,?)" ); 
stmt2=con8.prepareStatement(qry.toString()); 
stmt2.clearParameters(); 
stmt2.setInt(1,intFromUser); 
stmt2.setInt(2,intToUser); 
stmt2.setDate(3,sqlDate); 
stmt2.setString(4,sMessage); 
stmt2.setInt(5,intRead); 
stmt2.executeUpdate(); 

 

Η τιμη sqlDate δεν λεει να περασει στο field date tou table MESSAGE.

Οταν κανω insert χωρις να βαζω τιμη για το date, η εγγραφη γινεται κανονικα.

Οταν κανω out.println το sqlDate.toString() παιρνω την σημερινη ημερομηνια στη μορφη YYYY-MM-DD, οποτε υποθετω οτι εχει παρει σωστα τιμη η sqlDate.

 

Τι παει στραβα?!?

Δημοσ.

Το άλλο πιθανό πρόβλημα είναι ότι η access μπορεί να περιμένει την ημερομηνία σε συγκεκριμένη μορφή. Δοκίμασε να βρεις τη μορφή που περιμένει η access και μετάτρεψε την ημερομηνία σε αυτή τη μορφή.

Δημοσ.

Πολύ σωστά ... θα φταίει το φορμάτ της ημερομηνίας ... προσπάθησε με διάφορους τρόπους...αλλά καλύτερα βάλε εσύ μια εγγραφή στον πίνακα και με rs.getDate () της στήλης αυτής εκτύπωσε τι επιστρέφει ο πίνακας.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...