Primeiramente obrigado pela resposta, Rafael. Realmente esta foi uma das primeiras medidas que tomei. Fecho o TSQLQuery antes de pedir novos dados; atualizo o parametro de busca e reabro o TSQLQuery. Até aqui tudo funciona bem, o problema é que o TClientDataSet não reflete os dados do TSQLQuery.
Se mais alguém puder contribuir, ficamos agradecidos. Sds, Ricardo Rafael Marques <[EMAIL PROTECTED]> escreveu: eu ja passei por uma situacao assim (nao sei se é exatamente a mesma solucao q pra sua), mas o q fiz foi sempre fechar o SqlQuery antes de passar o parametro. Eu fecho e o ClientDataset, passo o parametro e depois abro o clientdataset eu fiz isso e funfo!! ----- Original Message ----- From: Ricardo César Cardoso To: delphi-br@yahoogrupos.com.br Sent: Friday, April 27, 2007 8:44 AM Subject: [delphi-br] Problemas com ClientDataSet e DBGrid Bom dia amigos da lista, como vão? Gostaria de uma ajuda de qualquer um que já passou por esta situação. Tenho um DataModule onde entre outros componentes referentes a um determindado módulo da minha aplicação tenho um TSQLQuery, um TDataSetProvider, um TClientDataSet e um TDataSource ligados entre si e o TDataSource ligado a um TDBGrid. Dentro da aplicação existe uma rotina que faz uma busca parametrizada e traz apenas os registros correspondentes para o TDBGrid (pelo menos faz em outros módulos, somente neste que não faz). Para isto, montei a instrução SQL dentro do TSQLQuery, algo que sempre faço, inclusive coloquei o parâmetro dentro da própria SQL e configurei o parametro com seu tipo correto. Até aqui nenhum problema. Quando rodo a aplicação e chamo esta rotina, na primeira execução que faço, os dados vem para o TDBGrid da maneira esperada, mas quando chamo novamente esta rotina, os dados do TDBGrid continuam a ser referentes ao parâmetro anterior. Debugei a aplicação para ver se o parâmetro estava realmente sendo passado da maneira correta (atualizada) e notei que tudo estava OK. Fiz mais um teste para saber se o TSQLQuery estava fazendo a consulta que eu estava pedindo. Novamente tudo estava OK, ou seja, a instrução SQL era executada e os dados vinham para o TSQLQuery. Aí notei que o problema só poderia ser no TClientDataSet. Tentei várias abordagens como fechar e abrir novamente o TClientDataSet, fazer um "refresh" nele, mas nada resolveu. É como se o TClientDataSet estivesse mantendo os dados em memória referentes a primeira consulta executada, mesmo depois do TClientDataSet ser fechado e reaberto, e do conjunto de dados ao qual ele deveria refletir ter mudado. Alguém já passou por esta situação, e pode me dar alguma dica? Sds, Ricardo. __________________________________________________ Fale com seus amigos de graça com o novo Yahoo! Messenger http://br.messenger.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas] ---------------------------------------------------------- Esta mensagem foi verificada pelo E-mail Protegido Terra. Scan engine: McAfee VirusScan / Atualizado em 26/04/2007 / Versão: 5.1.00/5018 Proteja o seu e-mail Terra: http://mail.terra.com.br/ [As partes desta mensagem que não continham texto foram removidas] _ __________________________________________________ Fale com seus amigos de graça com o novo Yahoo! Messenger http://br.messenger.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas]