Re: RES: [firebase-br] Concorrência de Acesso
marcelo - teflamar
marcelo em teflamar.com.br
Qua Mar 21 20:53:27 -03 2007
vc pode reservar a mercadoria imediatamente na venda, sem mexer com o seu
estoque
----- Original Message -----
From: "Marlon Andrei" <marlon.andrei em terra.com.br>
To: "'FireBase'" <lista em firebase.com.br>
Sent: Wednesday, March 21, 2007 8:37 PM
Subject: RES: RES: [firebase-br] Concorrência de Acesso
Olá pessoal, Aproveitando a discussão...
Uma loja com 2 estações acessando o mesmo BD, entra 2 clientes querendo
comprar o mesmo produto ao mesmo tempo, sendo que esse produto esta com um
saldo de 10 quantidades, um dos clientes compra 7 e o outro 5 desse mesmo
produto. Se ambos confirmarem a venda ao mesmo tempo e baixarem o produto
via triger, teríamos um saldo de -2 concordam? Como ficaria isso quando os
clientes fossem tirar a mercadoria do depósito?
Vocês fariam alguma trava? Seria um processo operacional da loja?
??? até mais...
-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Gleiber
Enviada em: quarta-feira, 21 de março de 2007 17:03
Para: FireBase
Assunto: Re: RES: [firebase-br] Concorrência de Acesso
Magno..
qdo o usuario confirma(vai gravar) uma operação eu abro e fecho a transação,
por tanto é questao de 1 segundo mesmo...
a minha duvida é que 2 usuarios acessam o mesmo registro filtrando-os na
memoria pelo clientDataset..nesse momento um deles confirma a gravação do
registro, logo o outro usuario naum poderia fazer nada....pois o status
daquele registro foi alterado...mas como está na memoria né..ele prosegue
mesmo assim...
----- Original Message -----
From: "Magno System" <magno em speet.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Wednesday, March 21, 2007 2:36 PM
Subject: Re: RES: [firebase-br] Concorrência de Acesso
Eu tenho um ponto de venda e faço da seguinte maneira.
Eu tenho uma tabela AUXILIARVENDAS onde a cada item passado para venda ele
faz o seguinte:
Abre a transação
Insere o numerodocaixa + dados do produto na tabela AUXVENDAS;
Fecha transação
Essa operação se repetirá para cada produto passado.
Aí quando todos os itens tiverem passados no caixa, e o vendedor fechar a
venda o sistema faz o seguinte:
Abre transação
EXECUTE PROCEDURE CADASTRAVENDA(NumerodoCaixa):
Fecha transação
Essa procedure cadastrará na tabela VENDAS todos os produtos da tabela
AUXVENDAS correspondentes ao caixa X (NumeroCaixa) e após cadastrado limpará
da tabela AUXVENDAS os itens do caixa X, podendo assim iniciar uma nova
venda.
A tabela de vendas por sua vez tem uma trigger (After Insert) que como o
Cantu disse abate o estoque.
Desta maneira as transações ficam abertas por frações de segundos.
Agora se você abrir a transação, começar a cadastrar os itens (supomos que
sejam muitos) e só depois fechar, tenha a certeza de que terá muitos
deadlocks.
T+
______________________________________________
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
______________________________________________
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
______________________________________________
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
Mais detalhes sobre a lista de discussão lista