[firebase-br] MASTER DETAIL com IBO

Carlos H. Cantu listas em warmboot.com.br
Quinta Julho 23 14:32:32 -03 2020


Se vc quer enviar as alterações de uma vez só pro servidor terá que
usar CachedUpdates.

Mais informações:
http://www.ibobjects.com/ibo_help/usingcachedupdates.htm

[]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 já
>> 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
>>




Mais detalhes sobre a lista de discussão lista