[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