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