RES: [firebase-br] >>>>> Help por favor , as transaçoes em DBExpress estão me enlouquecendo <<<<<<
Jorge Luis Bublitz
bublitz em tre-mt.gov.br
Ter Jul 25 16:30:56 -03 2006
Tente assim
TD.IsolationLevel := xilREADCOMMITTED;
Mas com a primeira rotina.
Jorge Luis Bublitz
Analista Desenvolvedor
-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Antonio Carlos
Enviada em: terça-feira, 25 de julho de 2006 14:13
Para: FireBase
Assunto: [firebase-br] >>>>> Help por favor , as transaçoes em DBExpress
estão me enlouquecendo <<<<<<
Meus amigos, na literatura é dito que usando DbExpress e Delphi voce
controla uma transação assim :
begin
try
TD.TransactionID := 1;
TD.IsolationLevel := xilREPEATABLEREAD;
SQLConnection1.StartTransaction(TD);
Sql4.Close;
.....
Sql4.ExecSQL;
SQLConnection1.Commit(TD);
except
on e: Exception do
begin
SQLConnection1.Rollback(TD);
MessageDlg('Erro XXXXXX : '+E.Message,mtError,[mbOK],0);
end;
end;
Isso funciona 100% se o banco esta sendo acessado apenas por um Client. So
que quando ocorre de haver mais de um Client a executar o mesmo
procedimento, da erro informando já haver um transação com esse ID
Ai fiz o seguinte :
var
i : integer;
begin
result := false;
try
i := 0;
while i = 0 do i := Random(65000);
TD.TransactionID := i;
TD.IsolationLevel := xilREPEATABLEREAD;
SQLConnection1.StartTransaction(TD);
Como podem ver a probabilidade de haver um mesmo ID para a transação é
dificil mas não impossível e a M é que ocorre.
Estou fazendo algo errado ? Fico grato se puderem me ajudar.
Obrigado.
Antonio
______________________________________________
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
--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.394 / Virus Database: 268.10.4/396 - Release Date: 24/07/2006
Mais detalhes sobre a lista de discussão lista