Olá Fábio.
Já havia experimentado uma técnica como a que vc descreveu anteriormente e não
havia funcionado. Tentei novamente e continuei não tendo o resultado esperado.
O que mais me intriga é que o ClientDataSet mantém o Cache de dados da 1ª
consulta efetuada. Posso fazer qualquer alteração nos parâmetros da instrução
SQL que vem do TSQLQuery que elas não se refletem no TClientDataSet. Na verdade
elas só se refletem na primeira solicitação, nunca nas outras solicitações.
Grato,
Ricardo.
fabio giro <[EMAIL PROTECTED]> escreveu:
Costumo fazer assim:
with DM.cdsManut do
begin
DM.qryManut.parambyname('placre').asstring := trim(edtLacre.text);
close;
open;
end;
Abrir e fechar o clientdataset. Experimente.
Ricardo César Cardoso <[EMAIL PROTECTED]> escreveu:
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: [email protected]
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]
__________________________________________________
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]
__________________________________________________
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]