Re: [firebase-br] Dead lock em transações
Eduardo Jedliczka
eduardo em gerasoft.com.br
Ter Fev 22 08:06:12 -03 2005
Evandro, ninguém respondeu porque é um problema de lógica, e não de
tecnologia.
Há várias possíveis soluções, mas nenhuma é imediata.
Creio que a melhor delas (num SGDB) é adotar o sistema de reserva.
Ao iniciar uma venda, você NÃO abre uma transação, e assim que os produtos
forem adiconados à sua "possível" venda, você adiciona um registro (com
auto-commit) numa tabela de reservas, sem chave primária, mas que possua um
campo identificação para saber a quem foi reservado (exemplo: vendedor,
cliente, produto e quantidade).
Ao fechar a venda, inicia-se a transação (com lock), gera o cabeçalho,
grava-se os itens, atualiza-se o estoque e commita a transação, finalmente
apague os registros incluídos na tabela de reserva.
[s]
==========================
Eduardo Jedliczka
Gerasoft Informática
Apucarana - Pr
==========================
----- Original Message -----
From: "Evandro Paloschi" <epaloschi em yahoo.com.br>
To: <lista em firebase.com.br>
Sent: Monday, February 21, 2005 11:53 PM
Subject: [firebase-br] Dead lock em transações
> Esta mensagem já foi postada na lista mas até agora não obtivemos uma
resposta que solucionasse nosso problema:
>
> Usamos dbExpress com delphi 7.0 acessando firebird 1.0
> Na nossa aplicação de venda através de cupom fical abrimos uma transação,
gravamos o cabeçalho a venda, atualizamos uma tabela de vendas ativas,
gravamos os itens da venda, a fatura e por fim confirmamos a
transação(commit). Qdo duas ou mais vendas forem efetuadas de maneira
simultanea
> ocorre dead lock.
>
> Nos foi dito de setar REC VERSION, mas no DBEXPRESS não localizamos
> esta funcionalidade. É possível trabalhar com transações da maneira que
estruturamos nosso processo???
>
> Obrigado
> Evandro
>
>
> ---------------------------------
> Yahoo! Acesso Grátis - Internet rápida e grátis. Instale o discador do
Yahoo! agora.
> ______________________________________________
> 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