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]

Responder a