public void DBRead(MudHost myHost)
	{
		CMLib.quests().shutdown();
		DBConnection D=null;
		try
		{
			D=DB.DBFetch();
			final ResultSet R=D.query("SELECT * FROM CMQUESTS");
			while(R.next())
			{
				final String questName=DBConnections.getRes(R,"CMQUESID");
				final String questScript=DBConnections.getRes(R,"CMQSCRPT");
				final String questWinners=DBConnections.getRes(R,"CMQWINNS");
				final long flags=DBConnections.getLongRes(R, "CMQFLAGS");
				final Quest Q=(Quest)CMClass.getCommon("DefaultQuest");
				Q.setFlags(flags);
				final boolean loaded=Q.setScript(questScript,!Q.suspended());
				Q.setFlags(flags);
				Q.setWinners(questWinners);
				if(Q.name().length()==0)
					Q.setName(questName);
				if(!loaded)
				{
					if(!Q.suspended())
					{
						Log.sysOut("QuestLoader","Unable to load Quest '"+questName+"'.  Suspending.");
						Q.setSuspended(true);
					}
					if(CMLib.quests().fetchQuest(Q.name())==null)
						CMLib.quests().addQuest(Q);
					continue;
				}
				if(Q.name().length()==0)
					Log.sysOut("QuestLoader","Unable to load Quest '"+questName+"' due to blank name.");
				else
				if(Q.duration()<0)
					Log.sysOut("QuestLoader","Unable to load Quest '"+questName+"' due to duration "+Q.duration()+".");
				else
				if(CMLib.quests().fetchQuest(Q.name())!=null)
					Log.sysOut("QuestLoader","Unable to load Quest '"+questName+"' due to it already being loaded.");
				else
					CMLib.quests().addQuest(Q);
			}
		}
		catch(final SQLException sqle)
		{
			Log.errOut("Quest",sqle);
		}
		finally
		{
			DB.DBDone(D);
		}
	}