[firebase-br] Transações DBXExpress

Kelver Merlotti kmerlotti em gmail.com
Qua Jul 8 09:54:37 -03 2009


O IBX faz isso na boa..
Se for necessário usar isso na sua aplicação, pra não ter que reescrever
tudo, você pode montar um método que conecte nas duas bases via IBX, faça as
alterações e depois dê o commit.

Agora, se a aplicação toda for em dois bancos, aí sujou!

Neste link dá pra ter uma idéia de como implementar (veja os comentários):
http://www.activedelphi.com.br/modules.php?op=modload&name=News&file=article&sid=791

Obs.: para ver o link você precisa estar logado no site (activedelphi.com.br).
Se não for cadastrado, faça o registro que é bem rápido:
http://www.activedelphi.com.br/user.php?op=register&module=NS-NewUser

Abraços!

2009/7/8 Eduardo Jedliczka <jedyfb em gmail.com>

> 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
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



-- 
Kelver Merlotti
Coordenador Editorial do Portal www.ActiveDelphi.com.br
Contato: kelver em activedelphi.com.br
Google: kmerlotti em gmail.com
Msn: kmerlotti em hotmail.com
Tem um segundo? Então, dá uma olhadinha nisso:
Um site de publicidades, de Portugal, está pagando em euros (quase 3x
mais que em reais) pra quem estiver disposto a:
* Ler anúncios
* Visitar sites
* Clicar em banners
* Navegar na NET
* Ler e-mails
* Convidar novos usuários
O pagamento é feito em cheque! Registra lá!! Não custa nada! ;-)
http://www.publipt.com/pages/index.php?refid=kmerlotti



Mais detalhes sobre a lista de discussão lista