[firebase-br] DbExpress + transação + Firebird

Robson Catunda robson.catunda em gmail.com
Qua Mar 16 11:22:22 -03 2011


Pelo que eu saiba, aplicanco o applyupdates() e não dando nenhum erro já
gravou fisicamente, o rollback() não tem o que retornar.
Já vi posts aqui mesmo no grupo falando que o applyudate não salva
fisicamente mas não é verdade.
Em todos os meus sistemas utilizo firebird+dbexpress+delphi7 e o applyupdate
apos o post no clientdataset salva sim fisicamente.
Vale salientar que isso é utilizando a triade
slqdataset+datasetprovider+clientdataset, devidamente configurados.
Todo o controle de transação fica a cargo do proprio datasetprovider.
Não faço nada no sqlconnection alem de abri-lo no inicio do sistema e
fecha-lo junto com o sistema tb.

Em 16 de março de 2011 11:00, Adélio <adelionep em gmail.com> escreveu:

> Bom dia pessoal estou usando transação no dbexpress da seguinte maneira:
>
> Transacao.TransactionID:= 1;
>  Transacao.IsolationLevel:=  xilReadCommitted;
>  DM.SQLConnection1.StartTransaction(Transacao);
>  CDS_MeuDataSet.Post;
>  if  CDS_NotaFiscal.ApplyUpdates(0) = 0 then
>  begin
>     DM.SQLConnection1.Commit(Transacao);
>  end
>  else
>     DM.SQLConnection1.Rollback(Transacao);
>
> Notei que o RollBack não está funcionando, se eu der somente:
>
> CDS_NotaFiscal.ApplyUpdates(0);
> DM.SQLConnection1.Rollback(Transacao);
>
> Os dados estão sendo inseridos no bd da mesma maneira, nesse caso o
> ApplyUpdates que está controlando a transação? Como contornar isso?
>
> att,
>
> Adélio
>
> ______________________________________________
> 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
>



Mais detalhes sobre a lista de discussão lista