Fórum ClientDataSet em Rede #46268
25/08/2004
0
eu tenho um modulo em um sistema em rede para dar entrada de estoque, tenho uma tabela que armazena o cabeçalho e outra p/ itens que estão ligadas em 2 IBClientDataSet(em master/detail) quando + de 1 usuário da entrada nessas tabelas ao mesmo tempo e em produtos diferentes ocorre tudo bem, mas quando é dada entrada em produtos iguais ele salva o cabeçalho dos dois usuarios, mas só salva os itens do primeiro usuário que salvou, os itens do outro usuario ele não salva e não salvando os itens ele não dá entrada na tabela de estoque geral que é alimentada por um trigger que e´ executado no evento after insert da tabela de itens da nota fiscal.
alguém já teve o mesmo problema ou tem uma solução?
obrigado.
Tap_pedroso
Curtir tópico
+ 0Posts
25/08/2004
Afarias
Este componente foi descontinuado
|alguém já teve o mesmo problema ou tem uma solução?
Acredito q o problema é:: Quando o 1o usuário entra o ITEM a triger atualiza o ESTOQUE do produto deixando assim o registro bloqueado
Quando o segundo usuário cadastra a entrada do mesmo produto, a trigger tenta atualizar o estoque mas não pode pq o registro está bloqueado rertornando um erro (que vc não está vendo pq ClientDataSets não geram exceptions!)
MINHA SUGESTÃO:
1- configure sua transação para WAIT (neste processo)
2- mantenha as transações curtas (em geral não tem q se preocupar com isso pois transações usando CDSs normalmente são muito rápidas -- mas verifique seu código)
T+
Gostei + 0
25/08/2004
Tap_pedroso
Gostei + 0
25/08/2004
Tap_pedroso
[b:6eec8cd51d]try
dm.IBMOVESTOQUE.ApplyUpdates(0);
dm.IBITESTOQUE.ApplyUpdates(0);
DM.IBTransaction.Commit;
except
messagedlg(´Atenção: Existe outro usuário na rede tentando alterar o mesmo ´+
´produto que você, tente salvar novamente´,mtconfirmation,[mbok],0);
dm.IBTransaction.Rollback;
exit;
end;
messagedlg(´Dados da Entrada de Estoque Foram Salvos com Sucesso...´,mtconfirmation,[mbok],0); [/b:6eec8cd51d]
obrigado pela força.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)