Res: [firebase-br]Dúvida com transações

Marcos Venicio Toledo marcosveniciotoledo em yahoo.com.br
Seg Out 16 14:44:59 -03 2006


O Ideal para evitar todos os problemas eh o seguinte, nao armazenar a quantidade em estoque e sim, fazer inserçoes numa tabela de movimentacao, assim se o caixa a fizer e o b fizer na havera problemas. E quando vc precisar saber qto tem no estoque eh so fazer um select sum() e pegar o resultado.


Qualquer coisa envie um email


Obrigado

Marcos Venicio


----- Mensagem original ----
De: Magno System <magno em speet.com.br>
Para: FireBase <lista em firebase.com.br>
Enviadas: Quarta-feira, 11 de Outubro de 2006 13:04:32
Assunto: [firebase-br]Dúvida com transações


Pessoal, agradeço muito a ajuda de vocês mas fiz um teste e funcionou. Penso em tratar o deadlock direto do delphi. Veja abaixo:

procedure TForm1.Button1Click(Sender: TObject);
var
tentadenovo: boolean;
begin
ZConnection1.StartTransaction;
With ZStoredProc1 do
Begin
   parambyname('Codigo').AsInteger:=847;
   parambyname('Data').AsDate:=Date;
end;
tentadenovo:=true;
While Tentadenovo = true do
Begin
   Try
     ZStoredproc1.execproc;
     tentadenovo:=false;
   Except
      Begin
         tentadenovo:=TRUE;
         sleep(500);
      end;
   end;
end;
ZConnection1.commit;
Messagedlg('ok', mtwarning, [mbok], 0);
end;

Claro que é só um teste. Dá pra implementar algo como tempo-limite ou número de vezes máximo para tentar commitar e se estourar o tempo dá aviso ao usuário. 
______________________________________________
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


		
_______________________________________________________ 
Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu celular. Registre seu aparelho agora! 
http://br.mobile.yahoo.com/mailalertas/ 
 



Mais detalhes sobre a lista de discussão lista