Consulta Parcial

Delphi

21/09/2009

Pessoal, gostaria da ajuda de vocês para um dúvida minha.

Utilizo D7 + Zeos + MySQL.

Possuo uma tabela relativamente grande. O meu problema é que quando eu dou um SELECT * FROM clientes e dou um QryClientes.Open para ser listado num DBGrid, a consulta demora devido ao tamanho da tabela.

O que eu queria era por exemplo listar no DGGrid os 20 primeiros registros e conforme eu fosse baixando a barra lateral do DBGrid a consulta fosse completada com os registros seguintes.

Eu sei que poderia limitar no SELECT com a opção LIMIT. Porem, como faria para quando rolar o DBGrid para baixo os outros registros fossem aparecendo.

Agradeço quem puder ajudar.


Kuroski

Kuroski

Curtidas 0

Respostas

Osocram

Osocram

21/09/2009

Amigo.
No ClientDataSet tem a propriedade PacketRecord veja se tem isso no Zeos.

Outro detalhe é que se não me engano isso so vai realmente funcionar se vc usar 3 camadas, então o resultado em relação a demora vai ser a mesma.
Pois com o DBExpress qdo se usa isso... vamos supor que o select retorne 1000 registros mas no packetRecord esteja 100. No servidor de aplicação onde esta o SqlQuery vai trazer os 1000, e no cliente vai trazer os primeiros 100. Isso quser dizer que se vc não usa 3 camadas (cliente/servidor no mesmo executavel) então vai demorar o mesmo tanto.
Pelo menos é assim que eu acho que funcione.

Vc pode dar uma olhada tbm nos indicies dessa tabela isso ajuda bastante.

flw.


GOSTEI 0
POSTAR