Como expliquei anteriormente, quando usamos componentes para conectar o Delphi com algum banco de dados, devemos deixar todos os componentes desconectados e só conecta-los quando for executar alguma transação, isso sempre funcionou comigo usando firebird, mas quando fui usar o delphi com SQL Server, mesmo deixando todos eles desconectados, me deparei com o seguinte erro:
não é possível criar uma nova transação porque a capacidade foi excedida
Fiz de tudo para funcionar e nada, já estava ficando louco quando descobri o seguinte evento do ClientDataSet
BeforeApplyUpdates
Foi o que salvou minha vida (pelo menos até o presente momento), selecionei todos os meus ClientDataSet e nesse evento coloquei o comando:
SQLConnection1.CloseDataSets;
Ou seja, depois que ele efetua qualquer transação com o banco, ele fecha o dataSet, eu tinha feito isso manualmente no fechamento de cada form, mas não foi suficiente, agora com esse evento tudo está funcionando.
Então fica ai a dica pra quem estiver com o mesmo problema.
Até mais;
E eu estava ficando louca junto..rs
ResponderExcluirBjs...
Gabi
Eu também perdi uns 500 fios de cabelo com isso!!!!!
ResponderExcluirValeu a dica!
Cara, muito obrigado este erro tb estava me deixando louco.
ResponderExcluirObrigada! Serviu pra mim tb.
ResponderExcluirCara D++
ResponderExcluirMe ajudou muito estava com esse erro com o Dlphi XE + sql server 2008
Vlwss
Pessoal,
ResponderExcluirestou com o mesmo problema com o Delphi 7, já efetuei o esquema informado acima, porem comigo acontece quando tento abrir uma transação no (StartTransaction), alguma dica, por favor.
brigadao manooooooooooooooooooooo
ResponderExcluirMuito obrigado!!!!!
ResponderExcluirObrigado pela dica.
ResponderExcluirEu utilizo o DBExpress.
Resolvi o problema assim: Antes de startar uma nova transação, eu fecho e abro novamente o componente TSQLConnection. Funcionou perfeitamente.
Perfeito!!
ResponderExcluir