ClientDataSet Refresh PacketRecord

15/08/2017

0

Boa Noite pessoal. Estou com um problema o qual já passei horas tentando resolver e não consegui..

Tenho uma query que faço consulta ligada a um clientDataset com packetrecord 10 e feathondemand false..

Se eu faço uma consulta na query e depois dou um refresh no clientDataSet ele não respeita o packetrecord e mostra todos os registros que esta dentro da query, isso quando a query esta com um select * from tabela where 1 = 1 mostrando todos os registros..

Porem, se faço o mesmo procedimento na query e ao invés de dar um refresh no clientDataSet eu der um close e open em seguida, ele respeita o limite de 10 registros beleza...

Segue codigo


Assim Funciona respeitando o limite de registro

query.Close;
query.sql.clear;
query.sql.add(sql);
query.open;

if cds.Active then
begin
cds.Close;
cds.Open;
end;


Já assim não funciona, ele mostra todos os regitros da query

query.Close;
query.sql.clear;
query.sql.add(sql);
query.open;

if cds.Active then
cds.Refresh;


Muito agracido meus amigos.
Antonelly Silva

Antonelly Silva

Responder

Post mais votado

16/08/2017

Tente setar o
.FetchOnDemand := False;

Luiz Vichiatto

Luiz Vichiatto
Responder

Mais Posts

16/08/2017

Antonelly Silva

Ja esta assim, e fica do mesmo jeito...
Responder

16/08/2017

Douglas Souza

Antonelly, blz?

Já tentou definir a propriedade "PacketRecords" juntamente com o FetchOnDemand?

Ex:

clientDataset.PacketRecords    := 10;
clientDataset.FetchOnDemand := True;


Aguardo o feedback!

Um forte abraço.

Att, Douglas Claudio.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar