[firebase-br] RES: Gravação Mestre Detalhe

Joao Marcos unixkiller em gmail.com
Ter Out 20 21:36:45 -03 2009


 Meu querido, se você estiver usando Interbase, a melhor solução é:

 Trabalhar com componentes que não sejam DBAWARE.


 1 ) Os itens do pedido você pode ir colocando em uma tabela em
memória (RXTABLE por exemplo, paleta RX / Ou ainda o Client Dataset)
 2) Quando o usuário clicar no botão gravar, você lê o valor do
GENERATOR que vc setou pra sua tabela de pedidos e faz o resto.

 Usando generators, vc não precisa se preocupar com outros usuários
inserindo no banco, pois os generators estão em um outro contexto
transacional. Ainda que a sua transação não tenha sido comitada, este
valor de generator NUNCA vai ser obtido por outra aplicação rodando em
outro cliente.


ex.

procedute gravar();
var
 codPedido : integer;
begin


 codPedido := geraCodigoPedido(); // Funcão que recebe o codigo do generator.

 inserePedido(codPedido); // faz a inserção do seu pedido com o valor
obtido do generator.

// varre a sua tabela em memória fazendo os inserts na tabela de
itens, usando o código obtido pelo generator.



end




Mais detalhes sobre a lista de discussão lista