[firebase-br] Transações DBXExpress

Eduardo Jedliczka jedyfb em gmail.com
Qua Jul 8 09:17:43 -03 2009


Danilo, 

o Firebird permite que uma mesma transação seja realizada em dois bancos
distintos. Vários componentes nativos implementam o TWO-PHASE-COMMIT.

Porém o DBExpress não é um componente "NATIVO", e portanto acredito que
o mesmo não suporte uma característica tão específica, já que este
apresenta muitos bugs com o firebird, mesmo em características bem mais
simples do que esta.

Abraço

Eduardo

Em Qua, 2009-07-08 às 08:01 -0300, Danilo Miranda escreveu:

> Bom dia!
> 
> Assisti a palestra do Cantu ontem no FDD e não consegui esclarecer uma
> dúvida com relação ao "tratamento" de transações com o DBExpress 4 (D2007).
> Ví que existe a transação em 2 fases, ou seja, você cria uma transação para
> dois bancos "diferentes" se é que eu entendi direto... e na hora de
> "commitar" você commita a transação dos dois bancos... Como fazer isso no
> Delphi utilizando o DBExpress?
> 
> 
> Hoje eu faço assim:
> DBXTransaction :=
> SQLConnection1.BeginTransaction(TDBXIsolations.ReadCommitted);
>   try
>     // do your work...
>     SQLConnection1.CommitFreeAndNil(DBXTransaction);
>   except
>     SQLConnection1.RollBackFreeAndNil(DBXTransaction);
>     raise
>   end;
> 
> Mas como eu tenho que especificar qual é a conexão que será feita a
> transação (SQLConnection) como faço para iniciar a transação com duas
> conexões diferentes?
> 
> Abraços
> 



Mais detalhes sobre a lista de discussão lista