depois dá noticias sobre a solução, é importante ficar registrado para a
comunidade.

Em 5 de janeiro de 2011 11:05, Rogério Casal <rogerioca...@gmail.com>escreveu:

> Olá Samuel, acredito que vc está sofrendo com um problema um tanto comum em
> flex, o assícronismo deve estar lhe prejudicando pois pelo que entendi ele
> está mandando os dados para o backend dentro do for porém quando fazemos
> isso ele não espera que a requisição termine e já manda outra, de forma que
> a primeira não foi terminada, quando vc usa o debug pode ser que vc veja
> tudo certinho pois a demora de ficar teclando F6 ajude nesse caso, então
> para resumir aconselho vc criar um array de notas e enviar todas as notas de
> uma vez só para o backend apois o for, no backend vc percorre e persiste os
> dados, no backend vc não tera o mesmo problema que no flex, ele ficara
> esperando a linha ser executada para ir para a proxima.
>
> espero ter ajudado.
>
> att:
> --
> Rogério Casal
> Software Developer
> Fone: 81 8805-4303
> www.rogeriocasal.com.br
>
>
> Em 5 de janeiro de 2011 10:15, Samuel Soares 
> <samuelesoa...@gmail.com>escreveu:
>
>> Estou testando um sistema de gerar avaliações escolares on-line.
>>
>> Usamos o Flex 3, PHP e Zend. Basicamente funciona assim: o aluno, ao
>> acessar a área de avaliações, clica na avaliação disponível. Ao
>> acessar a tela aparece o título da avaliação, a disciplina e o nome do
>> professor. As questões estão dispostas em um tabNavigator, cada
>> questão é uma guia. Todas as possíveis respostas das questões são
>> radiobuttons, totalizando no máximo 5 possíveis respostas para cada
>> questão. Após marcar as respostas o aluno clica no botão ‘Finalizar
>> avaliação’ e o sistema já corrige a prova e armazena o resultado. Se a
>> prova for com duas pessoas, é só marcar um checkbox e escolhe o
>> segundo aluno.
>>
>> Existe um array (arrayRespostas) que armazena as respostas
>> selecionadas pelo aluno.
>>
>> Tá tudo funcionando corretamente, o aluno acessa, visualiza todos os
>> dados e as questões. As possíveis respostas, resolve a avaliação.
>> Tenho um botão de teste que ao clicar nele, baseado no arrayRespostas,
>> visualizo todas as respostas e se estão corretas ou não.
>>
>> O problema está na hora de gravar, ele grava todos os registros. Mas
>> não com os valores corretos. Já monitorei via o programa Charles e os
>> dados são mandados corretamente para gravação. Mas quando grava, cada
>> hora grava as informações de um jeito. Por exemplo, os dados como o ID
>> da avaliação, ID da turma são dados que não mudam. No Charles está
>> tudo certo, mas quando grava, principalmente nos registros finais,
>> outros ID’s são adicionados nos campos.
>> A quantidade de registros equivale as questões, por exemplo, 5
>> questões = 5 registros. Mas as informações dos registros não batem com
>> o que o Flex passa para o PHP.
>>
>> A dúvida é, tem algum limite de requisições para o RemoteObject ?
>> Baseado no exemplo, envio 5 requisições de inclusão. Parece que ele
>> “mistura” os valores dos registros. Já fiz várias modificações, vários
>> testes, mas nada. Talvez outras pessoas olhando o sistema, veja o erro
>> que eu não estou vendo.
>>
>> Segue abaixo os códigos:
>>
>> Instruções SQL capturadas através do PHP e gravadas em um arquivo TXT.
>> Tem instrução aí que tem até um GUID.
>>
>> INSERT INTO ge_notas_avaliacoes(nav_turma, nav_aluno, nav_avaliacao,
>> nav_questao, nav_resposta, nav_nota)VALUES('5', '4', '3', '1', '3',
>> '1.00')
>> INSERT INTO ge_notas_avaliacoes(nav_turma, nav_aluno, nav_avaliacao,
>> nav_questao, nav_resposta, nav_nota)VALUES('5', '3', '3', '1', '3',
>> '1.00')
>> INSERT INTO ge_notas_avaliacoes(nav_turma, nav_aluno, nav_avaliacao,
>> nav_questao, nav_resposta, nav_nota)VALUES('5', '4', '3', '5', '2',
>> '0')
>> INSERT INTO ge_notas_avaliacoes(nav_turma, nav_aluno, nav_avaliacao,
>> nav_questao, nav_resposta, nav_nota)VALUES('5', '3', '3', '1.00', '2',
>> '0')
>> INSERT INTO ge_notas_avaliacoes(nav_turma, nav_aluno, nav_avaliacao,
>> nav_questao, nav_resposta, nav_nota)VALUES('5', '4', '3', '1.00', '1',
>> '0')
>> INSERT INTO ge_notas_avaliacoes(nav_turma, nav_aluno, nav_avaliacao,
>> nav_questao, nav_resposta, nav_nota)VALUES('5', '3', '3', '3', '1',
>> '0')
>> INSERT INTO ge_notas_avaliacoes(nav_turma, nav_aluno, nav_avaliacao,
>> nav_questao, nav_resposta, nav_nota)VALUES('5', '4', '3', '3', '3',
>> '1.00')
>> INSERT INTO ge_notas_avaliacoes(nav_turma, nav_aluno, nav_avaliacao,
>> nav_questao, nav_resposta, nav_nota)VALUES('5', '3', '3', '1.00', '4',
>> '1.00')
>> INSERT INTO ge_notas_avaliacoes(nav_turma, nav_aluno, nav_avaliacao,
>> nav_questao, nav_resposta, nav_nota)VALUES('5', '4', '3',
>> '068507D5-18F9-FCC8-62FB-000028D1C54A', '2', '1.00')
>> INSERT INTO ge_notas_avaliacoes(nav_turma, nav_aluno, nav_avaliacao,
>> nav_questao, nav_resposta, nav_nota)VALUES('5', '3', '3', '1', '2',
>> '1.00')
>>
>> CODIGO AS3:
>>                        for (i=0; i < this.ArrayRespostas.length; i++)
>>                        {
>>                                var nota:Modelo_Notas_Avaliacoes = new
>> Modelo_Notas_Avaliacoes();
>>                                nota.turma = this.IDTurma;
>>                                nota.aluno = this.IDAluno;
>>                                nota.avaliacao = this.IDAvaliacao;
>>                                nota.questao =
>> this.ArrayRespostas[i]["questao"];
>>                                nota.resposta =
>> this.ArrayRespostas[i]["resposta"];
>>                                nota.nota = this.ArrayRespostas[i]["nota"];
>>
>>                                roNotas.IncluirNota(this.IDEscola, nota);
>>
>>                                if (check2aluno.selected == true)
>>                                {
>>                                        var nota2:Modelo_Notas_Avaliacoes =
>> new
>> Modelo_Notas_Avaliacoes();
>>                                        nota2.turma = this.IDTurma;
>>                                        nota2.aluno =
>> cboAlunos.selectedItem.alu_id;
>>                                        nota2.avaliacao = this.IDAvaliacao;
>>                                        nota2.questao =
>> this.ArrayRespostas[i]["questao"];
>>                                        nota2.resposta =
>> this.ArrayRespostas[i]["resposta"];
>>                                        nota2.nota =
>> this.ArrayRespostas[i]["nota"];
>>
>>                                        roNotas.IncluirNota(this.IDEscola,
>> nota2);
>>                                }
>>                        }
>>
>> CÓDIGO PHP:
>>
>> function IncluirNota($escola, $nota=Modelo_Notas_Avaliacoes)
>>        {
>>                // Conecta o banco de dados
>>                $bd = new BancoDeDados();
>>                $cn = $bd->ConectarEscola($escola);
>>
>>                $sql = "";
>>                $sql .= "INSERT INTO ge_notas_avaliacoes(nav_turma,
>> nav_aluno,
>> nav_avaliacao, nav_questao, nav_resposta, nav_nota)";
>>                $sql .= "VALUES(";
>>                // Turma
>>                $sql .= "'" . $nota->turma . "', ";
>>                // Aluno
>>                $sql .= "'" . $nota->aluno . "', ";
>>                // Avaliacao
>>                $sql .= "'" . $nota->avaliacao . "', ";
>>                // Questao
>>                $sql .= "'" . $nota->questao . "', ";
>>                // Resposta
>>                $sql .= "'" . $nota->resposta . "', ";
>>                // Nota
>>                $sql .= "'" . $nota->nota . "')";
>>
>>                $consulta = mysql_query($sql) or die(mysql_error() . $sql);
>>
>>                // Grava o arquivo txt
>>                $fp = fopen("arquivo.txt", "a");
>>                $escreve = fwrite($fp, $sql . "\n");
>>                fclose($fp);
>>
>>
>>                if (!mysql_error())
>>                {
>>                        return true;
>>                }
>>                else
>>                {
>>                        return false;
>>                }
>>        }
>>
>>
>> Agradeço a ajuda.
>>
>> --
>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
>> Para sair da lista, envie um email em branco para
>> flexdev-unsubscr...@googlegroups.com
>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>
>
>
>
> --
> Rogério Casal
> Software Developer
> Fone: 81 8805-4303
> www.rogeriocasal.com.br
>
>


-- 
Rogério Casal
Software Developer
Fone: 81 8805-4303
www.rogeriocasal.com.br

-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Responder a