[firebase-br] MASTER DETAIL com IBO

Wanderlei Borges wanderleiborges em gmail.com
Sexta Julho 24 10:02:33 -03 2020


Bom dia.
Gustavo, você já considerou usar o Delphi Comunity Edition que é grátis?
(Delphi CE)
De repente, por aí você começa a utilizar uma versão bem mais rica de
possibilidades.
Abraços,
Wanderlei


<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
Livre
de vírus. www.avg.com
<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>.
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Em sex., 24 de jul. de 2020 às 09:43, Carlos H. Cantu <
listas em warmboot.com.br> escreveu:

> Até algum tempo atrás, podíamos dizer que o principio do CachedUpdates
> no IBO era o mesmo da "BDE" do Delphi, então vc pode recorrer a
> documentação do Delphi (TQuery, TTable) para saber como trabalhar com
> ele. Atente para o evento OnCheckCachedInsert, que não existe na
> "BDE" e existe no IBO. Ele deve ser usado nas queries "detalhe" e deve
> retornar "true" se o registro deve ser exibido. Basicamente vc compara
> o ID do mestre com o ID no detalhe e se forem iguais, retorna true.
>
> Há uns 2 anos atrás, o Jason adicionou vários novos recursos no
> CachedUpdates do IBO, principalmente em relação a como tratar
> conflitos de atualização, que não existem na "BDE". Você pode ler isso
> no release notes do IBO, alias, recomendo que vc abra o RN e pesquise
> por CachedUpdates e leia tudo que estiver lá a respeito desse assunto.
>
> []s
> Carlos H. Cantu
> eBook Guia de Migração para o FB 3 - www.firebase.com.br/guiafb3.php
> www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br
>
> GN> Marcos,
>
> GN> Ainda estou com delphi 5, infelizmente.
>
> GN> Cantu, sobre o TransactOat escrito pelo Jason (IBO), confesso não
> entendi
> GN> muito Vou procurar alguma outra explicação, outra forma de explicar. O
> GN> Aplicativo de testes coloquei pra funcionar mas não soube como testar.
>
> GN> Obrigado a vocês.
>
> GN> *Gustavo Novaes *
>
>
>
>
> GN> Em sex., 24 de jul. de 2020 às 08:24, Marcos R. Weimer <
> GN> marcosweimer em gmail.com> escreveu:
>
> >> Gustavo
> >>
> >> Se está usando delphi "mais novo", migre para FireDac, aqui usamos IBO
> por
> >> anos (desde o delphi 6) e com a atualização do delphi a poucos anos
> >> acabamos fazendo testes com o FireDac e os resultados (desempenho) em
> >> alguns casos específicos (insert de vários registros em lotes) foram bem
> >> melhores (além de economizar na licença do IBO). Não lembro exatamente
> os
> >> valores por que já faz tempo, aqui estamos migrando aos poucos.
> >>
> >>
> >> -=Ma®©oS=-
> >> Marcos R. Weimer
> >> Pessoas quietas têm as mentes mais barulhentas - Stephen Hawking
> >> Viver significa ter algumas alegrias e muito sofrimento - Pepe Mujica
> >> Muitos daqueles que te chamam de louco queriam ter a sua coragem -
> Silvio
> >> Santos
> >>
> >>
> >>
> >>
> >>
> >> Em qui., 23 de jul. de 2020 às 15:08, Carlos H. Cantu <
> >> listas em warmboot.com.br> escreveu:
> >>
> >> > Acho que o arquivo OptimizingQuerysAndTransaction.rtf que fica na
> >> > pasta docs do IBO tb fala sobre CachedUpdates.
> >> >
> >> > []s
> >> > Carlos H. Cantu
> >> > eBook Guia de Migração para o FB 3 - www.firebase.com.br/guiafb3.php
> >> > www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br
> >> >
> >> > GN> Obrigado Cantu, mas...
> >> >
> >> > GN> ... o controle do PK/FK até imagino como farei mas, preciso
> realmente
> >> > fazer
> >> > GN> a entrada de dados, usando IboQuery ou IB_Query, com
> cachedUpdates?
> >> Tem
> >> > GN> algum exemplo,  tutorial ou papel de pão, guardanapo de botequin,
> >> dando
> >> > GN> dica?
> >> > GN> Perdoee-me a brincadeira, obrigado mais uma vez.
> >> >
> >> >
> >> >
> >> > GN> *Gustavo Novaes *
> >> >
> >> >
> >> >
> >> >
> >> > GN> Em qui., 23 de jul. de 2020 às 13:55, Carlos H. Cantu <
> >> > GN> listas em warmboot.com.br> escreveu:
> >> >
> >> > >> Com CachedUpdates vc precisa do valor das PKs/FKs antes de mandar
> os
> >> > >> dados pro servidor, do contrário, não há como manter o
> relacionamento
> >> > >> entre os registros pois não se sabe quais IDs seriam atribuidos.
> >> > >> Portanto, você terá que incrementar os generators no OnNewRecord e
>> >> > >> atribuir ao campo especifico, bem como atribuir os IDs dos "pais"
> nos
> >> > >> registros "filhos" conforme eles vão sendo inseridos, pra que
> quando
> >> > >> forem enviados pro Firebird já estejam definidos.
> >> > >>
> >> > >> []s
> >> > >> Carlos H. Cantu
> >> > >> eBook Guia de Migração para o FB 3 -
> www.firebase.com.br/guiafb3.php
> >> > >> www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br
> >> > >>
> >> > >> GN> Boa tarde,
> >> > >> GN> Na minha aplicação antiga (bde + paradox) tinha dificuldades em
> >> > fazer
> >> > >> uma
> >> > >> GN> entrada de dados master-detail. Usava cached updates. O usuário
> >> > poderia
> >> > >> GN> inserir/editar dados na tabela pai e  na filha. Após gravar,
> >> fazia o
> >> > >> apply
> >> > >> GN> updates para persistir no banco.
> >> > >> GN> O Modelo não funcionava bem. Passei a usar um exemplo de querys
> >> > >> aninhadas
> >> > >> GN> (2 tquerys relacionados), 1 provider, 2 clients datasest onde
> o 2o
> >> > era
> >> > >> GN> ligado ao tdatasetfield da query2. Beleza, assim ficou.
> >> > >>
> >> > >> GN> Agora que estou migrando pro IBO, deparei-me com um problema.
> >> > >> GN> No banco paradox eu tinha uma estrutura semelhante a essa :
> >> > >>
> >> > >> GN>    1. Campo código, ALFA DE 8, CHAVE PRIMARIA
> >> > >> GN>    2. CAMPO NOME, ALFA 60
> >> > >> GN>    3. campo CodigoEndereco (autoincremento)
> >> > >>
> >> > >> GN> Tenho uma tabela Filial
> >> > >>
> >> > >> GN>    1. Campo CodigoDoPai (alfa de 8) PK
> >> > >> GN>    2. Campo CodigoFilial (Alfa de 8) PK
> >> > >> GN>    3. Nome da Filial
> >> > >> GN>    4. Campo CodigoEndereço (autoincremento)
> >> > >>
> >> > >> GN> Tenho uma tabela de Endereços, que serve tando à empresa como à
> >> > filial
> >> > >>
> >> > >> GN>    1. CodEndereco (inteiro) PK
> >> > >> GN>    2. QuemGravou (alfa, 10) (valores vários EMPRESA ou FILIAL)
> PK
> >> > >> GN>    3. Campos de endereço/localidades...
> >> > >>
> >> > >> GN> No modelo para FB os campos autoincremento passaram para bigint
> >> > >> calculados
> >> > >> GN> via sequence+trigger (na conversão que fiz automatica, via
> >> DataPump,
> >> > >> que
> >> > >> GN> gerou o script - mantive assim)
> >> > >>
> >> > >> GN> Pois bem, repetindo o que disse acima "cria ou altera uma
> empresa
> >> ou
> >> > >> uma
> >> > >> GN> filial, infomando codigo, nome e endereço, tudo de uma vez só,
> em
> >> > >> cache,
> >> > >> GN> que depois vai pro banco).
> >> > >>
> >> > >> GN> Não estou conseguindo fazer esse "efeito" com o IboQuery e não
> >> > >> encontrei um
> >> > >> GN> exemplo.  Já percebi que não poderei trabalhar com a
> >> > SEQUENCE/TRIGGER
> >> > >> (ou
> >> > >> GN> poderei?), terei que controlar "manualmente" os numeradores.
> >> > >>
> >> > >> GN> Podem me ajudar por favor? Algma dica. Não queria ter que
> fazer no
> >> > >> modelo
> >> > >> GN> QUERY+PROVIDER+CLIENTDATASET.
> >> > >>
> >> > >> GN> Obrigado.
> >> > >>
> >> > >>
> >> > >> GN> *Gustavo Novaes *
> >> > >> GN> ______________________________________________
> >> > >> GN> FireBase-BR (www.firebase.com.br) - Hospedado em
> >> www.locador.com.br
> >> > >> GN> Para saber como gerenciar/excluir seu cadastro na lista, use:
> >> > >> GN> http://www.firebase.com.br/fb/artigo.php?id=1107
> >> > >> GN> Para consultar mensagens antigas:
> >> > >> GN> 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
> >>
> GN> ______________________________________________
> GN> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> GN> Para saber como gerenciar/excluir seu cadastro na lista, use:
> GN> http://www.firebase.com.br/fb/artigo.php?id=1107
> GN> Para consultar mensagens antigas:
> GN> 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
>

<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
Livre
de vírus. www.avg.com
<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>.
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>


Mais detalhes sobre a lista de discussão lista