Fórum Commit em duas fases com dbExpress #345363
30/08/2007
0
Estou precisando usar commit em duas fases para atualizar/inserir em dois bancos de dados distintos. Alguém sabe como implementar isso?
Estou usando: Delphi 7, Firebird 2.0 e para fazer UPDATE, INSERT estou usando o TSQLDataSet da paleta dbExpress.
Se alguém puder me ajudar agradeço.
Adriano_ds
Curtir tópico
+ 0Posts
30/08/2007
Rodrigo_koga
Vc pode fazer o seguinte:
SQLConnection.StartTransaction -> Para abrir uma transação;
SQLConnection.Commit -> Para salvar uma transação;
SQLConnection.Roolback -> Para não salvar uma transação, para voltar os dados a situação anterior da gravação dos dados;
Gostei + 0
30/08/2007
Adriano_ds
Sim, mas eu preciso fazer isso em dois bancos de dados diferentes (cada um fica num micro diferente).
E preciso que as atualizações sejam feitas nos dois ou cancele tudo (commit em duas fases do Firebird). Vou ter dois TSQLConnection e apenas uma transação. Não sei se isto é possível com dbExpress?
Mas obrigado pela atenção, amigo.
Gostei + 0
30/08/2007
Emerson Nascimento
gravatransacao := false; try inicia transacao banco1 executa procedimentos banco 1 gravatransacao := true; except gravatransacao := false; end; if gravatransacao then begin try inicia transacao banco2 executa procedimentos banco 2 gravatransacao := true; except gravatransacao := false; end; end; if gravatransacao then begin confirma transacao banco1 confirma transacao banco2 end else begin if transacao banco 1 iniciada then desfaz transacao banco 1 if transacao banco 2 iniciada then desfaz transacao banco 2 end
Gostei + 0
30/08/2007
Adriano_ds
Obrigado por ajudar, amigo. Esta vai ser a solução que vou ter que usar caso não tehna como implementar commit em duas fases pelo Delphi.
Sei que o firebird tem o recurso. Só não sei se o Delphi e dbExpress suportam.
Será que teria outra forma de fazer commit em duas fases? Como por exemplo acessar a API do firebird?
Gostei + 0
30/08/2007
Beppe
Tvz vc pudesse derivar SQLConnection para poder tratar esta situação. Faça uma investigação e veja se vale a pena.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)