Estou com um problema chato aqui, no Delphi algumas coisas que é o trivial não funciona.
Tenho esse trecho de código abaixo, tenho que alterar varias tabelas e faz tudo dentro de uma transação. StartTransaction; Try Apply_Update(cdsRecebimentos); Apply_Update(cdsMovimentacaoContas); LancaVinculosMovimentoContas; Apply_Update(cdsRecebimentos); Apply_Update(cdsMovimentoContas); Apply_Update(cdsCadastro); cdsCadastro.First; While Not cdsCadastro.Eof Do Begin >>>>Arqui onde gera o erro, tenho uma classe(DataModele) que responsavel por carregar as informações fazer alterações e gravar, porem no Open do dataset gera o erro if cdsCadastroVALOR_TOTAL_DEVIDO.AsFloat <> cdsCadastroVALOR_TOTAL_DEVIDO_ANTERIOR.AsFloat Then begin With AbreContasReceberDam(cdsCadastro.FieldByName('COD_CONTA_RECEBER').AsInteger, cdsCadastro.FieldByName('COD_EMP_CONTA_RECEBER_CAD').AsInteger) Do //NESSE PONTO DA O ERRO Try DoGravar; Finally DataModule.Free; End; end; cdsCadastro.Next; End; CommitTransaction; Except On E: Exception Do Begin If dtmConexao.connConexao.InTransaction Then RollBackTransaction; Raise End; end; end; Porem não posso abrir um ClientDataSet no meio de uma transação que gera essa exception "Não é possível criar uma nova conexão porque o modo usado é o de transação manual ou distribuída" É uma coisa tão básica e no Delphi não funciona, desanimador isso. Alguem tem alguma luz do por que isso esta ocorrendo. Obrigado. At. Ricardo Lima -- Estou utilizando a versão gratuita de SPAMfighter para usuários privados. Foi removido 5225 emails de spam até hoje. Os usuários pagantes não têm esta mensagem nos seus emails. Adquira SPAMfighter grátis aqui: http://www.spamfighter.com/lpt