Olá pessoal,

Estou com um problema chato aqui, tem uma operação aqui que altero dados 
em mais de uma tabela e utilizo transação para gravar os dados no banco, 
o código é +/- assim:

SqlConnecton.BeginTransaction;
Try

   ClientDataSet1.ApplayUpdates(0);
   ClientDataSet2.ApplayUpdates(0);
   ClientDataSet3.ApplayUpdates(0);

   ClientDataSet4.Open; //Nesse ponto da o erro
   ClientDataSet4.FieldByName('CAMPOS').AsInteger := 10;
   ClientDataSet4.Post;
   ClientDataSet4.ApplayUpdates(0);

   SqlConnecton.CommitTransaction;

Except
   SqlConnecton.RollBackTransaction;
End;


No meio da transação se eu tentar abrir uma query qualquer me retornar o 
erro Não é possível criar uma nova conexão por que o modo de transação é 
manual ou distribuída.

Verifiquei também que se eu configura o GetMetaData para False  no 
SQLDataSet o erro não ocorre, usando o SQLMonitor vi que o erro acontece 
no momento em que o SQLDataSet vai pegar os
meta dados da tabela.

Alguem sabe o por que isso acontece?

Uso Delphi 2009 + Sql Server 2005 e DBExpress;

Obrigado.

Ricardo Lima

-- 
Estou utilizando a versão gratuita de SPAMfighter para usuários privados.
Foi removido 5162 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

Responder a