* Treiber, Host, User und Passwort, ueber den der Zugriff auf die
* Datenbank erfolgt.
*
- * @version $Revision: 1.19 $ $Date: 2002/06/29 15:44:46 $
+ * @version $Revision: 1.21 $ $Date: 2002/08/04 23:38:22 $
* @author $Author: mh $
*
* $Log: Database.java,v $
+ * Revision 1.21 2002/08/04 23:38:22 mh
+ * fix up the webdb_create update stuff
+ *
+ * Revision 1.20 2002/07/21 22:32:25 mh
+ * on insert, the "webdb_lastchange" field should get a value
+ *
* Revision 1.19 2002/06/29 15:44:46 mh
* make the webdb_create update be called webdb_create_update. it breaks things otherwise. a fixme case I know..
*
private SimpleDateFormat _dateFormatterOut =
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
private SimpleDateFormat _dateFormatterIn =
- new SimpleDateFormat("yyyy-MM-dd");
+ new SimpleDateFormat("yyyy-MM-dd HH:mm");
private Calendar _cal = new GregorianCalendar();
private static final int _millisPerHour = 60 * 60 * 1000;
if (!aField.equals(thePKeyName)) {
aValue = null;
// sonderfaelle
- if (aField.equals("webdb_create")) {
+ if (aField.equals("webdb_create") ||
+ aField.equals("webdb_lastchange")) {
aValue = "NOW()";
}
else {
if (metadataFields.contains("webdb_lastchange")) {
sql.append(",webdb_lastchange=NOW()");
}
- // special case: the webdb_create requires the field in yyyy-mm-dd format
- // so anything extra will be ignored. which breaks actual updating when a
- // a change in date is not desired but the values hash has the correct and
- // full "webdb_create" field and value in it. solution make it so the update
- // must be called webdb_create_update. a hack I know.. hopefully
- // we can replace this whole layer soon. -mh
+ // special case: the webdb_create requires the field in yyyy-mm-dd HH:mm
+ // format so anything extra will be ignored. -mh
if (metadataFields.contains("webdb_create") &&
- theEntity.hasValueForField("webdb_create_update")) {
- // TimeStamp stuff
- try {
- java.util.Date d = _dateFormatterIn.parse(
- theEntity.getValue("webdb_create"));
- Timestamp tStamp = new Timestamp(d.getTime());
- sql.append(",webdb_create='"+tStamp.toString()+"'");
- } catch (ParseException e) {
- throw new StorageObjectException(e.toString());
+ theEntity.hasValueForField("webdb_create")) {
+ // minimum of 10 (yyyy-mm-dd)...
+ if (theEntity.getValue("webdb_create").length() >= 10) {
+ String dateString = theEntity.getValue("webdb_create");
+ // if only 10, then add 00:00 so it doesn't throw a ParseException
+ if (dateString.length() == 10)
+ dateString=dateString+" 00:00";
+
+ // TimeStamp stuff
+ try {
+ java.util.Date d = _dateFormatterIn.parse(dateString);
+ Timestamp tStamp = new Timestamp(d.getTime());
+ sql.append(",webdb_create='"+tStamp.toString()+"'");
+ } catch (ParseException e) {
+ throw new StorageObjectException(e.toString());
+ }
}
}
if (streamedInput != null) {