[firebase-br] RES: Atualizar a tabela B com dados de A

Paulo Geloramo assisinformatica em gmail.com
Sáb Set 8 12:19:02 -03 2018


Como esta atualização vai ser executado em
todos os clientes, talvez não seja o mais
apropriado, mas agradeço a sugestão.
--
Paulo Geloramo
www.assisinformatica.com


Em sáb, 8 de set de 2018 às 11:33, Levi R. de Freitas <
levi.ribeiro em gmail.com> escreveu:

> Será apenas um update por linha e não três.
>
> Um abraço,
> Levi Ribeiro de Freitas
> Celular: +55 12 98207-2828
> Email: levi.ribeiro em gmail.com
>
> Em 8 de set de 2018, à(s) 11:26, Levi R. de Freitas <
> levi.ribeiro em gmail.com> escreveu:
>
> > Bom dia!
> >
> > Faz apenas um selec com todas as informações que precisa atualizar na
> tabela estoque, trazendo os campos Chaves.
> >
> > Pelo ibexpert gera o script de atualização informando tabela e where.
> >
> > Pra grandes massas de dados tenho feito e funciona.
> >
> > Um abraço,
> > Levi Ribeiro de Freitas
> > Celular: +55 12 98207-2828
> > Email: levi.ribeiro em gmail.com
> >
> > Em 8 de set de 2018, à(s) 08:21, Paulo Geloramo <
> assisinformatica em gmail.com> escreveu:
> >
> >> Bom dia Levi,
> >>
> >> Obrigado pela sugestão, mas não entendi
> >> qual seria a forma que você propõe, se
> >> puder detalhar como seria, posso fazer o teste
> >> e postar aqui o resultado.
> >> As duas formas que encontrei para atualizar
> >> estão publicadas abaixo, usando EXECUTE BLOCK  (19 minutos) e
> >> Update com Select (mais de 3 horas - desisti).
> >> Firebid 2.5.8
> >> Não tem Trigger e View
> >> Force Write desligado
> >> Indice para campo ID
> >> Banco Dados 2.5 GB
> >> As tabelas são diferentes
> >> ====
> >> UPDATE ESTOQUE Q
> >> SET Q.REMESSA = COALESCE(Q.REMESSA + (
> >> SELECT SUM(I.QUANTIDADE)
> >> FROM NOTA_PONTO_ITEM I
> >> WHERE I.ID_EDICAO = Q.ID_EDICAO AND I.ID_PONTO = Q.ID_PONTO), 0);
> >>
> >> UPDATE ESTOQUE Q
> >> SET Q.DEVOLUCAO = COALESCE(Q.DEVOLUCAO + (
> >> SELECT SUM(I.DEVOLUCAO)
> >> FROM CE_PONTO_ITEM I
> >> WHERE I.ID_EDICAO = Q.ID_EDICAO AND I.ID_PONTO = Q.ID_PONTO), 0);
> >>
> >> UPDATE ESTOQUE Q
> >> SET Q.VENDA = COALESCE(Q.VENDA + (
> >> SELECT SUM(I.VENDA)
> >> FROM CE_PONTO_ITEM I
> >> WHERE I.ID_EDICAO = Q.ID_EDICAO AND I.ID_PONTO = Q.ID_PONTO), 0);
> >>
> >> =====
> >>
> >> EXECUTE BLOCK
> >> AS
> >> DECLARE ID_EDICAO INTEGER;
> >> DECLARE ID_PONTO INTEGER;
> >> DECLARE REMESSA INTEGER;
> >> DECLARE DEVOLUCAO INTEGER;
> >> DECLARE VENDA INTEGER;
> >> BEGIN
> >>  FOR SELECT ID_EDICAO, ID_PONTO, QUANTIDADE
> >>      FROM NOTA_PONTO_ITEM
> >>      INTO :ID_EDICAO, :ID_PONTO, :REMESSA DO
> >>  BEGIN
> >>    UPDATE ESTOQUE
> >>    SET REMESSA = COALESCE(REMESSA + :REMESSA, 0)
> >>    WHERE ID_EDICAO = :ID_EDICAO AND ID_PONTO = :ID_PONTO;
> >>  END
> >>
> >>  FOR SELECT ID_EDICAO, ID_PONTO, DEVOLUCAO, VENDA
> >>      FROM CE_PONTO_ITEM
> >>      INTO :ID_EDICAO, :ID_PONTO, :DEVOLUCAO, :VENDA DO
> >>  BEGIN
> >>    UPDATE ESTOQUE
> >>    SET DEVOLUCAO = COALESCE(DEVOLUCAO + :DEVOLUCAO, 0), VENDA =
> >> COALESCE(VENDA + :VENDA, 0)
> >>    WHERE ID_EDICAO = :ID_EDICAO AND ID_PONTO = :ID_PONTO;
> >>  END
> >> END
> >>
> >> ======
> >>
> >>
> >> --
> >> Paulo Geloramo
> >> www.assisinformatica.com
> >>
> >>
> >> Em sex, 7 de set de 2018 às 20:35, Levi R. de Freitas <
> >> levi.ribeiro em gmail.com> escreveu:
> >>
> >>> Gera um script de atualização através de um select.
> >>>
> >>> Um abraço,
> >>> Levi Ribeiro de Freitas
> >>> Celular: +55 12 98207-2828
> >>> Email: levi.ribeiro em gmail.com
> >>>
> >>> Em 7 de set de 2018, à(s) 15:40, Paulo Geloramo <
> >>> assisinformatica em gmail.com> escreveu:
> >>>
> >>>> As tabelas são diferentes.
> >>>> --
> >>>> Paulo Geloramo
> >>>> www.assisinformatica.com
> >>>>
> >>>>
> >>>> Em sex, 7 de set de 2018 às 13:15, centriscorps em gmail.com <
> >>>> centriscorps em gmail.com> escreveu:
> >>>>
> >>>>> O conteúdo das tabelas A e B são iguais?
> >>>>>
> >>>>> Renato
> >>>>> ______________________________________________
> >>>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> >>>>> Para saber como gerenciar/excluir seu cadastro na lista, use:
> >>>>> http://www.firebase.com.br/fb/artigo.php?id=1107
> >>>>> Para consultar mensagens antigas:
> >>>>> http://www.firebase.com.br/pesquisa_lista.html
> >>>>>
> >>>> ______________________________________________
> >>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> >>>> Para saber como gerenciar/excluir seu cadastro na lista, use:
> >>> http://www.firebase.com.br/fb/artigo.php?id=1107
> >>>> Para consultar mensagens antigas:
> >>> http://www.firebase.com.br/pesquisa_lista.html
> >>> ______________________________________________
> >>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> >>> Para saber como gerenciar/excluir seu cadastro na lista, use:
> >>> http://www.firebase.com.br/fb/artigo.php?id=1107
> >>> Para consultar mensagens antigas:
> >>> http://www.firebase.com.br/pesquisa_lista.html
> >>>
> >> ______________________________________________
> >> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> >> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> >> Para consultar mensagens antigas:
> http://www.firebase.com.br/pesquisa_lista.html
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas:
> http://www.firebase.com.br/pesquisa_lista.html
>



Mais detalhes sobre a lista de discussão lista