protected boolean remove(String constraint) {
		String sql = getDeleteSQL();
		if (constraint != null && constraint.length() > 0) sql += " WHERE " + constraint;
		
		log.finest(sql);
		
		Statement stat = null;
		try {
			int res = -1;

			stat = db.getConnection().createStatement();			
			res = stat.executeUpdate(sql);	
			
			return res > 0;
		} catch (SQLException e) {
			log.log(Level.SEVERE, "remove failed: " + e.getMessage(), e);
		} finally {
			try {
				db.getConnection().setAutoCommit(true);
				if (stat != null) stat.close();
			} catch (SQLException es) {
				log.log(Level.WARNING, "failed to close statement: " + es.getMessage(), es);
			}
		}
		return false;
	}