Bom dia amigos! Finalmente consegui resolver o problema que tive e vou tentar descrever exatamente como consegui resolvê-lo.
Após dar uma lida na apostila do Bruno (esta apostila eu já tinha e já usava muitas das técnicas ali relatadas, e considero um bom material de referência) resolvi analisar o meu TClientDataSet. A princípio, todos os campos que eu queria apresentar no TDBGrid estavam incluidos no "Fields Editor" do TClientDataSet. O que eu fiz? Retirei todos os campos do "Fields Editor" e cliquei novamente com o botão direito sobre o meu TClientDataSet. No menu apresentado, selecionei "Fetch Params" e o parâmetro que primeiramente eu tinha criado dentro do TSQLQuery apareceu automaticamente no TClientDataSet. A partir daí, somente alterei o tipo de dados para "ftInteger" e mudei a instrução que alimenta o parâmetro para uma equivalente dentro da classe TClientDataSet (em tempo, dentro de um TSQLQuery, parâmetros podem ser passados com "ParamByName(nome_do_parametro : String)" ou "Params[indice_do_parametro: Integer]" e dentro do TClientDataSet temos "Params[indice_do_parametro: Integer]") e executei novamente a aplicação. Voilà! A aplicação funcionou como o esperado. Gostaria de agradecer a todos e a cada um em especial pelas contribuições. Sds, Ricardo. Bruno Lichot <[EMAIL PROTECTED]> escreveu: Sempre q vc fizer uma nova busca, precisa dar um close, preencher os parâmetros novamente dar um open no clientdataset Para um exemplo detalhado, pegue minha apostila de desenvolvimento client/Server com dbexpress no meu link de downloads Link: http://cc.codegear.com/Author/795118 Atenciosamente, Bruno Lichot CodeGegar Product Evangelist http://www.codegear.com http://cc.codegear.com/Author/795118 De: [email protected] [mailto:[EMAIL PROTECTED] Em nome de Ricardo César Cardoso Enviada em: sexta-feira, 27 de abril de 2007 08:45 Para: [email protected] Assunto: [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] __________ Informação do NOD32 IMON 2221 (20070426) __________ Esta mensagem foi verificada pelo NOD32 sistema antivírus http://www.eset.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]

