[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