ClientDataSet Refresh PacketRecord

SQL

Delphi

Firebird

15/08/2017

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

Curtidas 0

Melhor post

Luiz Vichiatto

Luiz Vichiatto

16/08/2017

Tente setar o
.FetchOnDemand := False;
GOSTEI 1

Mais Respostas

Antonelly Silva

Antonelly Silva

15/08/2017

Ja esta assim, e fica do mesmo jeito...
GOSTEI 0
Douglas Souza

Douglas Souza

15/08/2017

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.
GOSTEI 0
POSTAR