RE: [firebase-br] Sugestões para exibir cadastros muito grandes

Rubem Nascimento da Rocha djpardalrocha em hotmail.com
Sex Ago 31 12:10:19 -03 2007


Como fazia antes:
 
1) Mostro a tela em branco pro cliente, para que ele informe valores nos campos do registro para pesquisar dados específicos. Se ele não informar nada, eu mostro um grid com os registros que o ClientDataSet consultou;
 
2) À medida que o usuário solicitar mais dados para visualização nos controles data-aware, o ClientDataSet faz o fetch de dados conforme a demanda usando a propriedade FetchOnDemand.
****
Como faço hoje:
 
1) Além de mencionar cada atributo(campo) que quero que seja retornado por tupla(linha) do SELECT (o que evita o full table scan), busca todos os registros de uma só vez na aplicação cliente. Assim, o tráfego na rede só vai acontecer se uma das condições abaixo acontecer:
 
. Registros foram alterados no banco de dados e estes precisarem ser atualizados também no ClientDataSet da aplicação cliente;
 
. Registros foram excluídos do banco de dados e estes precisarem ser excluídos também no ClientDataSet da aplicação cliente.
 
2) Como faço pra detectar se houveram alterações? Se eu uso FireBird, eu uso o gerenciamento de eventos dele; se é um outro banco de dados qualquer, eu faço esse controle consultando os registros que foram alterados ou excluídos através de campos nas tabelas que indicam se o registro foi incluído, alterado ou excluído desde a última vez que fiz essa consulta.
 
3) Pra saber se algum registro foi excluído, eu pego as chaves dos registros que eu tenho ClientDataset e consulto no BD pra saber se eles existem ou não. Daí, se não existirem, eu excluo do ClientDataSet na aplicação cliente.
4) É claro, essas consultas são períodicas e com filtros por data/hora. Assim, garanto que a aplicação cliente sempre irá gerar fluxos de rede mínimos.
 
Sds.
 
> Date: Fri, 31 Aug 2007 11:45:58 -0300> From: consultoressoftware em gmail.com> To: lista em firebase.com.br> Subject: [firebase-br] Sugestões para exibir cadastros muito grandes> > Bom dia pessoal !> > Tenho uma pergunta que não chega a ser exatamente técnica, mas sim, sobre> uma otimização.> > Tenho aqui em uma aplicação, um cadastro de veículos, que hoje possui> cerca de 2 mil registros, mas deve aumentar bem, pois ainda não está em> produção .> Qual é a política mais adotada por vocês, para abrir esse cadastro em uma> grid, sem fazer full scan ( select * ) ?> > Talvez seja mostrar uma certa quantidade de registros, mas aí tem o caso em> que é preciso dar um locate no DataSet e o registro procurado não está na> grid.> > Quais seriam as sugestões de vocês ?> > > Obrigado> ______________________________________________> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br> Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
_________________________________________________________________
Receba as últimas notícias do Brasil e do mundo direto no seu Messenger com Alertas MSN! É GRÁTIS!
http://alertas.br.msn.com/


Mais detalhes sobre a lista de discussão lista