[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