synchronized public DBField getField(DBTable table, DBValue[] where, Object[] values) throws Exception {
		ArrayList<DBField> fields = tables.get(table);
		if (fields == null)
			throw new Exception();
		if (where.length != values.length)
			throw new Exception();
		for (int i = 0; i < fields.size(); i++)
			if (fields.get(i).contains(where, values))
				return fields.get(i).create();
		return null;
	}