[firebase-br] Dúvida com transações
Magno System
magno em speet.com.br
Qua Out 11 13:04:32 -03 2006
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.
Mais detalhes sobre a lista de discussão lista