Fórum Gravação Simultânea em Rede - DBExpress #224914
08/04/2004
0
A rotina no meu programa: logo após gravar uma venda, edito a tabela de produtos e faço: ClientDataSetProdutos.Edit; ClientDataSetProdutosSaldo.Value := ClientDataSetProdutosSaldo.Value - ClientDataSetVendaItensQtde.Value; ClientDataSetProdutos.ApplyUpdates(-1). Enquanto estou trabalhando em apenas uma máquina, beleza. Meu problema acontece quando vou gravar duas vendas simultâneas e com o mesmo produto - uma em cada máquina na rede. Os lançamentos da venda gravam, mas o campo saldo do cadastro de produtos só é diminuído uma vez, ou seja, o estoque baixa apenas na quantidade digitada em uma das vendas. Parece que o sistema tenta gravar, percebe que a tabela está em modeo edit e daí não faz nada. Também não dá nenhum erro. Alguém poderia me ajudar com uma luz? Obrigadíssimo.
Valdirdill
Curtir tópico
+ 0Posts
08/04/2004
Everton
acho que seria mais conveniente você atualizar o estoque após cada venda de item. Ou seja, no before post da tabela de VendaItens, você verifica se há disponibilidade do produto e dá baixa no estoque. Assim, independente da quantidade de vendas simultâneas daquele produto, você terá o seu estoque sempre atualizado.
Espero ter ajudado.
Gostei + 0
09/04/2004
Valdirdill
Obrigado.
Gostei + 0
09/04/2004
Logado
Outra dica eh usar o método ApplayUpdates com o parametro 0 assim
ApplayUpdates(0), assim a gravação será feita sem aceitar nenhum tipo de erro que possa ocorrer, com -1 o método aceita a gravação com qualquer tipo de erro, o que pode acarretar problemas mais tarde.
Espero q tenha ajudado...
Gostei + 0
09/04/2004
Valdirdill
Gostei + 0
09/04/2004
Logado
so tu postar ae o q vc quer com os campos e tabelas... posso até te mandar um email com um gdbzinho como exemplo
Gostei + 0
10/04/2004
Valdirdill
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)