clientDataSet Lento Delphi
11/08/2017
0
Uso ibtable, datasourte, provider e clientdataset para trazer os dados para serem manipulados no sistema. Porém uma determinada tabela tem muitos campos e muitos registros, o clientdataset chega a levar 2 min para abrir. Existe alguma forma para contornar essa situação?
Agradeço desde já.
Antonelly Silva
Post mais votado
11/08/2017
Dica. evite trazer muitos registro em uma consulta, coloque filtros ou dispositivos que minimizem esse resultados. ;)
Espero ter ajudado.
Att: Gutierry Antonio
Gutierry Pereira
Mais Posts
11/08/2017
Rafael Bosco
Faça o select e adiciona a visualização, posteriormente:
ClienteDataSet.EnableControls;
Dica: Não use o ClienteDataSet.First ao percorrer um CDS, pois esse método, irá varrer novamente o CDS para achar a primeira posição.
11/08/2017
Antonelly Silva
Como funciona a paginação?
11/08/2017
Rafael Bosco
Se a sua select usa INNER, LEFT JOINS, utilize a ligação entre eles com indices que diminui o tempo também.
Tive uma situação parecida, utilizei o DisableControls e EnableControls e resolveu.
11/08/2017
Antonelly Silva
11/08/2017
Gutierry Pereira
A paginação depende de banco para banco o mysql por exemplo fazemos uma consulta utilizando o limit.
Exemplo:
Select * from MinhaTabela limit (10,0) // traz as primeiras 10 ocorrencias Select * from MinhaTabela limit (10,11 // Traz as 10 registros iniciando no 11)
para isso vc tem que ter um controlador de pagina e dessa forma vai fazendo a requiisção das paginas necessarias.
Em algumas aplicações utilizo um algoritimo que enquanto o usuário navega na grid ele vai trazendo as proximas paginas, semelhante ao que acontece no facebook, dessa forma não é trago o resultado em uma unica consulta e conforme vai havendo a navegação os registros são sendo solicitados.
espero ter ajudado.
abraços
Clique aqui para fazer login e interagir na Comunidade :)