O problema é que os componentes nativos do delphi estão ultrapassados, eu
recomendo vc procurar uma suite de componentes de conexão de terceiros, aí
sim, vc terá um resultado muito melhor.

Lembre-se, o banco de dados evolui e é atualizado praticamente todos os
dias, a framework também tem q ter atualizações.

2009/8/14 Ricardo Lima <rlma...@gmail.com>

>
>
> 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
>
> 
>


[As partes desta mensagem que não continham texto foram removidas]

Responder a