Ricardo
 
Tive esse mesmo problema dias atrás. Crio os selects (quando são complexos)
em uma stringlist, crio os datasets em run-time e aplico a instrução direto
na tsqlquery.
 
Só que um dia fiz uma instrução na stringlist, não limpeia stringlist
(stringlist.clear) e utilizei a mesma estrutura para outra instrução e
quando abri o clientdataset ocorria esta mesma mensagem.
 
Veja se não há uma intrução com 2 ou mais tabelas.
 
SDS/Dirceu

  _____  

De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em
nome de Ricardo Lima
Enviada em: quarta-feira, 12 de agosto de 2009 16:46
Para: delphi-br@yahoogrupos.com.br
Assunto: [delphi-br] Problema com transação(Mensagem: Não é possível criar
uma nova conexão por que o modo de transação é manual ou distribuída).


  

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.spamfigh
<http://www.spamfighter.com/lpt> ter.com/lpt






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

Responder a