Davi, no evento BeforeApplyUpdates do DataSetProvider, você fecha a conexão, assim:
TSQLConnection.CloseDataSets. vê se funciona. Márcio Ricardo. ----- Original Message ----- From: Davi Eduardo Borges Wall To: delphi-br@yahoogrupos.com.br Sent: Thursday, June 14, 2007 2:52 PM Subject: RES: [delphi-br] D7 - DBExpress - SQLServer 2005 - ReadCommited / e alterações com Fetch (não fetchAll) SERÁ QUE TEM SOLUÇÃO??? Estou utilizando a estrutura Connection <- sqlquery <- provider <- clientedataset<- datasource Se vc está falando do problema do fetch, tivemos que utilizar ddois dataset's 1 para consultas e outro para alterações para contornar o problema. Mas o problema ainda existe, se eu não der fetchall numa query utilizando sql server eu não consigo alterar os dados. as vezes gera uma mensagem de erro que não recordo, mas lembro que era em português e achei um tanto esquisito. ________________________________ De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Márcio Ricardo Enviada em: quarta-feira, 13 de junho de 2007 16:52 Para: delphi-br@yahoogrupos.com.br Assunto: Re: [delphi-br] D7 - DBExpress - SQLServer 2005 - ReadCommited / e alterações com Fetch (não fetchAll) SERÁ QUE TEM SOLUÇÃO??? Davi, que tipo de componentes de conexão você está utilizando? Você poderia passar exatamente a mesangem de erro que está dando? Acho que tive algo parecido com isso, e consegui resolver, é fácil. Márcio Ricardo. ----- Original Message ----- From: Davi Eduardo Borges Wall To: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br> Sent: Friday, June 08, 2007 9:47 AM Subject: [delphi-br] D7 - DBExpress - SQLServer 2005 - ReadCommited / e alterações com Fetch (não fetchAll) SERÁ QUE TEM SOLUÇÃO??? Olá senhores, Gostaria de saber como os senhores lidaram com esta situação que aparentemente só acontece no SGBD SQL Server. Trabalho no desenvolvimento de um sistema multibanco que utiliza transação pessimista. Ou seja, somente quero ler informações "commitadas". Todos os dados que não forem "commitados" considero dados inconsistentes. No SQL Server (no meu caso 2005) se eu abrir uma transação, alterar, salvar e não dar commit ele da lock na tabela em questão. Todas as outras consultas ficarão literalmente travadas, até que o commit desta transação seja efetuado. Alguém sabe a causa disto? É assim mesmo que o SQL Server se comporta nesse caso? Por que os outros bancos como o FireBird e o Oracle não se comportam desta maneira mesmo utilizando ReadCommited? Estudei o hint NOLOCK que transforma aquele select especifico em uma consulta Read Uncommited, isto está ok, não gera mais o lock. Mas ele me retorna os dados antes de "Commitar". O que não é legal. Imagine que um dado está sendo inserido por um usuário enquanto Outro usuário está tirando um relatório e esta informação está saindo no relatório. Daí da um erro, e acontece um Rollback. Eu tenho um dado no relatório que não existe na base. ReadPast me traz todos os registros que não estão "lockados". O que também não satisfaz, pois o usuário pode estar editando um registro, importante alterando por exemplo a descrição, e estou tirando um relatório com valores. Esse registro não vai aparecer no relatório. Um colega uma vez disse " Qualquer que for a sua escolha, todas as opções são ruins", é isso mesmo ? Estas situações me fazem chegar a conclusão de que o Sql Server não é um banco de dados compatível com isolation ReadCommited, pois se para evitar um lock eu devo usar uma instrução Read Uncommited. No SqlServer também, estou com um problema intrigante. Se eu tenho uma query com fetch de 30 ou XX registros e tento alterar algum registro, após salvar o registro não salva. Somente se eu der um FetchAll, alterar e salvar, aí então os dados são salvos. Se alguém passou por esses problemas, qualquer sugestão é bem vinda. []'s Davi Wall. [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]