[firebase-br] Snapshot Table Stability

Eduardo Pelizzari de Andrade eduardoandrade em persoft.com.br
Sex Jul 6 09:16:38 -03 2007


Se você criar uma exceção para estoque negativo, uma trigger para a 
tabela de movimentos que altere a tabela de quantidade física no 
estoque, que seja executada antes da inserção do movimento e outra 
trigger na tabela de estoque que teste a quantidade física do estoque 
antes da atualização e  caso seja negativa retorne a exceção, parando 
toda movimentação, não resolve o teu problema?

Anticlei Scheid escreveu:
> Bom dia.
>
> Obrigado a todos pelas respostas.
> Talvez eu esteja equivocado em querer usar esta característica então vou 
> explicar com mais detalhe porque achei que preciso.
>
> Tenho uma tabela que registra os movimentos físicos de estoque e quando 
> executo um despacho físico dos itens de um pedido de vendas tenho que 
> garantir que nenhum outro usuário fará baixas nos mesmos itens até que a 
> transação termine.
> Embora a transação seja muito rápida é possível que dois usuários iniciem 
> transações coincidentes com algum ou alguns itens em comum e como as 
> transações não "enxergam"  entre si os registros inseridos por outra 
> transação é possível que o sistema permita baixa de um item que não esteja 
> no estoque, pois seu saldo é calculado sobre os registros de movimento, logo 
> o aplicativo pode não bloquear um saldo negativo porque simplesmente não 
> estaria negativo no momento da transação coincidente.
> Concordo que a probabilidade de acontecer é muito pequena, mas existem, 
> então eu queria que ao iniciar uma transação dessas a tabela de movimentos 
> ficasse travada para outras transações até que este primeira terminasse, 
> garantindo 100% o cálculo do saldo no momento.
>
> Se alguém puder sugerir uma outra forma agradeço muito.
>
> Abraço
>
> ----- Original Message ----- 
> From: "Carlos H. Cantu (TeamFB)" <listas em warmboot.com.br>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Friday, July 06, 2007 7:58 AM
> Subject: Re: [firebase-br] Snapshot Table Stability
>
>
> Vc define as caracteristicas da transação no momento em que abre ela,
> e não nas instruções sql (update, insert, etc) que vc vai rodar.
>
> Cuidado pois esse tipo de isolamento pode gerar vários deadlocks,
> dependendo do número de usuários simultâneos que vc tiver. Até hoje
> nunca precisei usa-la nos meus sistemas.
>
> []s
> Cantu (Membro do TeamFB - FireBase)
> http://www.warmboot.com.br
> FireBase - http://www.FireBase.com.br
>
> AS> Boa tarde pessoal.
>
> AS> Li no livro "The Firebird Book" que podemos utilizar em alguns
> AS> casos específicos uma característica de concorrência chamada "Snapshot 
> Table Stability".
> AS> Esta característica será muito útil para uma situação específica
> AS> na nossa aplicação, mas não estou conseguindo utilizar as palavras chave 
> :
> AS> SNAPSHOT TABLE STABILITY, WAIT, WITH LOCK, [PROTECTED | SHARED] {READ | 
> WRITE}
> AS> Já busquei no livro e na lista de discussão, mas não consegui
> AS> encontrar exemplos de instruções SQL que se utilizem desta 
> característica.
>
> AS> Obrigado
> AS> ______________________________________________
> AS> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> AS> Para editar sua configuração na lista, use o endereço
> AS> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> AS> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço 
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
>   

-- 
Eduardo Pelizzari de Andrade
Persoft Softwares Aplicativos
Fone: 55 11 62218061





Mais detalhes sobre a lista de discussão lista