public function gravaDadosProvaPerguntaRespondidaDAO(ProvaRespondida $prova) {

		$banco = $this->getBancoDados();

		$query = "SELECT tbl_prova_aluno.data_inicio 
					FROM tbl_prova_aluno 
					JOIN tbl_prova USING(prova)
					WHERE prova = ".$prova->getProva()->getId()." 
					AND tbl_prova.liberada > tbl_prova.data_inicio 
					AND tbl_prova_aluno.data_inicio IS NOT NULL";
		$retorno = $banco->executaSQL($query); 
		if ($banco->numRows($retorno) > 0){
			throw new Exception("Prova não pode ser alterada pois a mesma já foi liberado e/ou alunos já resolveu."); 
		}

		$query = "	DELETE FROM tbl_prova_aluno_resposta 
					WHERE prova_aluno_pergunta IN (
						SELECT prova_aluno_pergunta
						FROM tbl_prova_aluno_pergunta 
						WHERE prova = ".$prova->getProva()->getId()." 
						AND   aluno = ".$prova->getAluno()->getId()."
					)";
		if(!$banco->updateSQL($query)) {
			throw new Exception("Erro ao atualizar / inserir APAGAR RESPOSTA DA PROVA. ($query) "); 
		}
		
		$query = "	DELETE FROM tbl_prova_aluno_pergunta
					WHERE prova = ".$prova->getProva()->getId()." 
					AND   aluno = ".$prova->getAluno()->getId();
		if(!$banco->updateSQL($query)) {
			throw new Exception("Erro ao atualizar / inserir APAGAR RESPOSTA DA PROVA. ($query) "); 
		}

		for ($i=0; $i<$prova->getQtdePerguntasRespondida();$i++){

			#print "<hr>LINHA: $i<br>";

			$aux_prova_pergunta = $prova->getPerguntaRespondida($i);

			$prova_aluno_pergunta = $aux_prova_pergunta[0];
			$prova_pergunta       = $aux_prova_pergunta[1];
			$valor_corrigido      = $aux_prova_pergunta[2];

			if (strlen($valor_corrigido)==0){
				$valor_corrigido = " NULL ";
			}

			$query = " INSERT INTO tbl_prova_aluno_pergunta (
							prova,
							aluno,
							prova_pergunta,
							valor_corrigido
						)VALUES(
							".$prova->getProva()->getId().",
							".$prova->getAluno()->getId().",
							".$prova_pergunta.",
							".$valor_corrigido."
						)";
			#echo nl2br($query);
			if(!$banco->updateSQL($query)) {
				throw new Exception("Erro ao atualizar / inserir APAGAR PERGUNTA DA PROVA. ($query) "); 
			}

			$prova_aluno_pergunta = $banco->insert_id();
			$respotas_as_perguntas = $prova->getRespostasPergunta($prova_pergunta);

			#print "Qtde Perguntas: ".count($respotas_as_perguntas)." <br>";
			#print "Id Pergunta: $prova_pergunta <br>";

			for ($j=0; $j<count($respotas_as_perguntas);$j++){

				$aux_prova_resposta = $respotas_as_perguntas[$j];

				$prova_aluno_resposta   = $aux_prova_resposta[0];
				$prova_pergunta         = $aux_prova_resposta[1];
				$prova_resposta         = $aux_prova_resposta[2];
				$resposta_texto         = $aux_prova_resposta[3];
				$resposta_correta       = $aux_prova_resposta[4];
				$resposta_valor         = $aux_prova_resposta[5];

				if (strlen($resposta_valor)==0){
					$resposta_valor = " NULL ";
				}

				$query = " INSERT INTO tbl_prova_aluno_resposta (
								prova_aluno_pergunta,
								prova_resposta,
								resposta_texto,
								resposta_correta,
								valor
							)VALUES(
								".$prova_aluno_pergunta.",
								".$prova_resposta.",
								'".$resposta_texto."',
								'".$resposta_correta."',
								".$resposta_valor."
							)";
				#echo "<br>".nl2br($query);
				if(!$banco->updateSQL($query)) {
					throw new Exception("Erro ao atualizar / inserir APAGAR PERGUNTA DA PROVA. ($query) "); 
				}
			}
		}

		$query = "SELECT count(*) AS qtde_perguntas_sem_nota
					FROM tbl_prova_aluno 
					JOIN tbl_prova_aluno_pergunta USING(prova)
					WHERE tbl_prova_aluno.prova = ".$prova->getProva()->getId()." 
					AND   tbl_prova_aluno.aluno = ".$prova->getAluno()->getId()."
					AND   tbl_prova_aluno_pergunta.valor_corrigido IS NULL";
		$retorno = $banco->executaSQL($query); 
		if ($banco->numRows($retorno) > 0){
			$linha = $banco->fetchArray($retorno);
			#echo "1)".nl2br($query);
			if ($linha["qtde_perguntas_sem_nota"] == 0){
				#echo "11)".nl2br($query);
				$prova->setNotaLiberada(date('d/m/Y H:i'));
				#echo "2)".nl2br($query);
			}
		}
		#echo "2)".nl2br($query);
	}