[firebase-br] Travamento Otimista ou Pessimista
Marciano Bandeira
marciano.bandeira em bol.com.br
Qui Jan 13 09:27:03 -03 2005
Obrigado pela resposta.
Eu utilizo trigger para baixar o estoque, after insert, before update,
before delete, para baixa no estoque.
Quanto a transação testei pelo IBExpert em máquinas diferentes.
Tentei mexer no IB_Transaction do IBO para ver se funcionava no programa o
travamento otimista mais não consegui!
Se alguém tiver alguma idéia...
Desde ja abradeço
Marciano Bandeira
----- Original Message -----
From: "Jorge Henrique Aguiar" <jorginho em tauruslocacoes.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Wednesday, January 12, 2005 5:43 PM
Subject: Re: [firebase-br] Travamento Otimista ou Pessimista
> Crie uma trigger para fazer o calculo do estoque, nao faça diretamente
pelo
> programa senão dá zebra mesmo...
>
> O q eu sempre fiz foi uma trigger(afterinsert nos itens da venda ou
entrada)
> que dá um sum na quantidade de movimentação, separando os valores em
> variaveis distintas: ENTRADAS e SAÍDAS. Depois atualizo o saldo do
produto.
> Funciona 100%. Quer dizer, até hj funcionou...
>
> Quanto a transação, deve ser pq vc fez o teste da mesma estação. Tente
de
> uma estação diferente e veja no que dá...
>
> []´s
> ----- Original Message -----
> From: "Marciano Bandeira" <marciano.bandeira em bol.com.br>
> To: "FireBase" <Lista em firebase.com.br>
> Sent: Wednesday, January 12, 2005 4:41 PM
> Subject: [firebase-br] Travamento Otimista ou Pessimista
>
>
> Boa tarde a todos
>
> Uma coisa está me esquentando a cabeça a algum tempo, estou
desenvolvendo
> um sistema de vendas com banco de dados firebird, que rodará em rede,
até aí
> tudo blzinha
> Mais digamos que o produto 1 da tabela de produtos tenha o estoque 50,
aí
> o Terminal_1 vai e vende 10 unidades do Produto 1, mais antes de comitar
> (pois estará gravando outos items), o Terminal_2 vai e vende 5 unidades
do
> produto 1 e Comita a transação, aí o estoque do produto 1 cai para 45,
aí o
> Terminal_1 Comita a transação dele, como ficará o estoque, ele baixará
para
> 35 que seria o correto, ou baixará para 40 que era o que seria correto
> quando ele fez a gravação?
> OBS..: As baixas de estoque estou fazendo dentro de Triggers.
> OBS2: Tentei fazer o teste pelo IbExpert e ao tentar gravar o Item no
> Segundo terminal antes de comitar o primeiro apareceu a seguinte
mensagem:
>
> "Error Message:
> ----------------------------------------
> Unsuccessful execution caused by system error that does not preclude
> successful execution of subsequent statements.
> lock conflict on no wait transaction.
> deadlock.
> update conflicts with concurrent update."
>
> Outra pergunda, se o Firebird/Interbase faz travamento otimista de
> registro porquê dessa mensagem?
>
> Fica as duas perguntas no ar
> Agradeço a todos que poderem me ajudar
> Marciano Bandeira
> msn: cbndesenvolvimento em hotmail.com
> skype: marcianobandeira
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Mais detalhes sobre a lista de discussão lista