Cara eu posso ta falando besteira, mas eu faria de uma forma BEMMM
diferente.

Primeiro, eu arrumaria o seu codigo:

for(var a:int = 0; a < telaLiberadas.length; a++){

usuTela.cd_usuario   = telaLiberadas[a].cd_usuario;
usuTela.cd_empresa   = telaLiberadas[a].cd_empresa;
usuTela.cd_tela      = telaLiberadas[a].cd_tela;
usuTela.in_novo      = telaLiberadas[a].in_novo;
usuTela.in_pesquisar = telaLiberadas[a].in_pesquisar;
usuTela.in_remover   = telaLiberadas[a].in_remover;
usuTela.in_salvar    = telaLiberadas[a].in_salvar;
usuTela.dt_cadastro  = telaLiberadas[a].dt_cadastro;
usuTela.hr_cadastro  = telaLiberadas[a].hr_cadastro;
usuTela.cd_usucad    = telaLiberadas[a].cd_usucad;
usuTela.cd_usutela   = telaLiberadas[a].cd_usutela;

if (telaLiberadas[a].cd_usutela != 0 ){
          dsUsuTelas.update(usuTela,"cd_usutela");
 } else {
 //pesquisa se a tela foi inclusa no BD para atualização
pesquisaUsuTelasID(telaLiberadas[a].cd_tela,telaLiberadas[a].cd_empresa,telaLiberadas[a].cd_usuario);
 if (vcd_usutela != null) {
usuTela.cd_usutela   = parseInt(vcd_usutela);
 dsUsuTelas.update(usuTela,"cd_usutela");
} else {
  dsUsuTelas.insert(usuTela,"cd_usutela");
}

nao tem sentido e colocar o objeto varias vezes, sendo que todos sao a
mesma coisa e somente a chamada pra inerir ou update e diferente.

Segundo, EU NUNCA a cada insert eu enviaria para o servidor, eu faria uma
coletania de objectos e ai sim enviar para o servidor e la dentro eu faria
o loop e inseriria varios, ate por que da pra fazer insert em lot e nao 1
por 1, a diferença e gritante.
to passando por uns problemas iguais, qualquer coisa me da um toque que eu
te ajudo.



2013/12/19 Robinho de Morais <robinhodemor...@gmail.com>

> Pessoal, já tentei de várias maneiras, mas não consegui resolver o
> problema, vamos lá...
>
> Tenho em um datagrid as seguintes informações
>
> <https://lh5.googleusercontent.com/-GMPEaUxu0LA/UrMxpzO6KEI/AAAAAAAAEPs/WOEMIL1duvw/s1600/Sem+t%C3%ADtulo.png>
>
> veja que eu tenho a tela 1-cadUsuarios na empresa 1 com o cd_usutela, esse
> cd_usutela é a chave da tabela de liberação de telas, então quer dizer que
> essa já está gravada no banco....
> ai tenho a tela 3-cadUsuEmpresas na empresa 2 que acabei de incluir no
> datagrid...
>
> Para salvar eu criei um loop no arraycollection do datagrid...
>
> for(var a:int = 0; a < telaLiberadas.length; a++){
>
> if (telaLiberadas[a].cd_usutela != 0 ){
>  usuTela.cd_usuario   = telaLiberadas[a].cd_usuario;
> usuTela.cd_empresa   = telaLiberadas[a].cd_empresa;
> usuTela.cd_tela      = telaLiberadas[a].cd_tela;
> usuTela.in_novo      = telaLiberadas[a].in_novo;
> usuTela.in_pesquisar = telaLiberadas[a].in_pesquisar;
> usuTela.in_remover   = telaLiberadas[a].in_remover;
> usuTela.in_salvar    = telaLiberadas[a].in_salvar;
> usuTela.dt_cadastro  = telaLiberadas[a].dt_cadastro;
> usuTela.hr_cadastro  = telaLiberadas[a].hr_cadastro;
> usuTela.cd_usucad    = telaLiberadas[a].cd_usucad;
> usuTela.cd_usutela   = telaLiberadas[a].cd_usutela;
>  dsUsuTelas.update(usuTela,"cd_usutela");
>  } else {
>  usuTela.cd_usuario   = telaLiberadas[a].cd_usuario;
> usuTela.cd_empresa   = telaLiberadas[a].cd_empresa;
> usuTela.cd_tela      = telaLiberadas[a].cd_tela;
> usuTela.in_novo      = telaLiberadas[a].in_novo;
> usuTela.in_pesquisar = telaLiberadas[a].in_pesquisar;
> usuTela.in_remover   = telaLiberadas[a].in_remover;
> usuTela.in_salvar    = telaLiberadas[a].in_salvar;
> usuTela.dt_cadastro  = telaLiberadas[a].dt_cadastro;
> usuTela.hr_cadastro  = telaLiberadas[a].hr_cadastro;
> usuTela.cd_usucad    = telaLiberadas[a].cd_usucad;
>  //pesquisa se a tela foi inclusa no BD para atualização
>
> pesquisaUsuTelasID(telaLiberadas[a].cd_tela,telaLiberadas[a].cd_empresa,telaLiberadas[a].cd_usuario);
>  if (vcd_usutela != null) {
> usuTela.cd_usutela   = parseInt(vcd_usutela);
>  dsUsuTelas.update(usuTela,"cd_usutela");
> } else {
>   dsUsuTelas.insert(usuTela,"cd_usutela");
> }
>
> o usuTela é o meu VO, então no loop eu incluo as informações no VO para
> fazer o insert/update através da minha função insert/update.....
>
> Quando rodo esse loop...ele bagunça o registro...veja abaixo nas imagens...
>
>
> <https://lh6.googleusercontent.com/-1UqyX6RRDyg/UrMz-0ivFtI/AAAAAAAAEP4/0uFOzRUZtKI/s1600/up.png>
>
> Para o primeiro registro, como está salvo no banco iria fazer uma
> atualização, mas veja que a empresa é 1 e tela 1 do usutela 103, mas ele
> está pegando do ultimo registro...
>
>
> e
>
>
>
> <https://lh5.googleusercontent.com/-5WpbR9Dy4VI/UrM0VVTQ4kI/AAAAAAAAEQA/cSl27BXnQmk/s1600/in.png>
>
>
> No insert ele inclui os registros certo...conforme a sua linha do banco....
>
>
> To 2 semanas tentando de várias maneiras, mas não consegui...alguém pode
> me ajudar....?
>
>
>
>
>
>  --
> --
> 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
> ---
> Você está recebendo esta mensagem porque se inscreveu no grupo "flexdev"
> dos Grupos do Google.
> Para cancelar a inscrição neste grupo e parar de receber seus e-mails,
> envie um e-mail para flexdev+unsubscr...@googlegroups.com.
> Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
>



-- 
*Hélio Antonio Francisco Silva*
Desenvolvedor web
Certificado Flash developer
Certificado Flash Design
Certificado web developer
Consultor Microsiga / Totvs
Desenvolvedor ADVPL / ASP
Analista de sistemas e ERP Sênior.

-- 
-- 
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
--- 
Você está recebendo esta mensagem porque se inscreveu no grupo "flexdev" dos 
Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um 
e-mail para flexdev+unsubscr...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.

Responder a