Rolagem do dbgrid ao abrir o clientdataset

12/03/2013

2

Caros amigos

Estou com uma dificuldade no dbgrid.
Tenho um select que faz uma pesquisa com vários filtros e pode trazer 10, 200, 1000, 90000 registros.
Quando faço open no clientDataSet o dbgrid começa a mostrar os títulos e ele acaba rolando até o ultimo registro com isso travando a tela pq demora muito.

Tem alguma maneira de agiliza esta questão?

Ureis
Responder

Posts

12/03/2013

Joel Rodrigues

Carregar essa quantidade de registros não é interessante, até por que acho difícil que alguém realmente precise dessa quantidade de linhas em uma consulta.
Use o recurso do ClientDataSet que permite dividir a consulta em pacotes menores.
Responder

12/03/2013

Ureis

Então, eu sei que não é o ideal, mas as vezes eu tenho esta necessidade até para gerar uma exportação e entre outras...

Você tem algum material sobre esta questão que você citou? Se puder me ajudar, agradeço.
Se caso tiver alguma outra opção também.

desde já agradeço.

Ureis
Responder

12/03/2013

Daniel Santos

Simples, coloque ClientDataset.DisableControls

Ligue o Clientdataset e no final

ClientDataset.EnableControls


Esse comando para todas as atualizaoes dos componentes DB.

Acho que vai resolver seu problema.
Responder

12/03/2013

Joel Rodrigues

Talvez este link te ajude: [url]http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/DBClient_TClientDataSet_PacketRecords.html[/url]. Você vai usar a propriedade PacketRecords.
Responder
Talvez este link te ajude: [url]http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/DBClient_TClientDataSet_PacketRecords.html[/url]. Você vai usar a propriedade PacketRecords.


A solução apontada pelo Daniel é mais pratica e ideal.

O uso de PacketRecords deve-se usar com muito cuidado, pois desta maneira a requisição de rede, e BD, será maior e continua.

At.
Responder

12/03/2013

Joel Rodrigues

Bom, se ele realmente precisa carregar e exibir tudo de uma vez, realmente a solução apontada pelo Daniel é mais adequada. Porém, insisto que considere reavaliar se é realmente necessário exibir essa quantidade de registros em um grid.
Responder

13/03/2013

Marco Salles

O gente ??? a propriedade PacketRecords tb mostrar tudo ... So que por Demanda

O desabilitar e habilitar vai influenciar na performance da Visualização , ja o PacketRecords vai influenciar
no trafego de dados

tem um Artigo do Guinther aqui mesmo neste forum que ele explica muito bem sobre isto

se não me engano é este


http://www.devmedia.com.br/curso-de-dbexpress-e-datasnap-parte-xv/18764

[]sds
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira