[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