Pessoal tenho um cadastro de pessoas, onde tem os dados pessoais de uma pessoa 
fisica ou juridica, junto a esse cadastro tem mais 5 cadastros master/detail, 
telefones, endereços etc...

Uso BDS 2006, ClientDataSet com SQLServer 2005 pra desenvolver esse aplicativo, 
o cadastro de pessoas atualmente estou trazendo todos os registros dou um 
select * from pessoas, e faço uma relação master/detail com os 5 cadastros. 
Enquanto estava nos testes basicos tudo bem, hoje eu fui fazer um teste mais 
robusto e coloquei 12.000 registros no cadastro de pessoas, simplesmente é 
impossivel trabalhar dessa forma.

Gostaria de saber a opnião de vocês com relação a forma de trabalhar, não é 
aconselhavel trabalhar da forma que estou fazendo trazendo todos os registros? 
Qual a forma mais aconselhavel de trabalhar nesse caso?

Ou talves tenha alguma forma de otimizar o ClientDataSet de forma que seja mais 
rapido?

Eu sei que tem a propriedade PacketRecords , porem quando seto pra trazer de 10 
em 10 registros, como a aplicação tem um navegador e o usuário pode ir para o 
ultimo registro, ai demorar uma eterniadade até trazer todos os registros, 
outro problema com o PacketRecords são as buscas qualquer busca que eu fizer no 
ClientDataSet ele vai trazer todos os registros do banco.

Tava olhando o DataSetProvider e vi que ele tem uma propriedade 
poFetchDetailsOnDemand que eu posso utilizar, pelo que entendi dela, ela vai 
trazendo os registros detalhes conforme demanda, melhorou bastante o tempo, 
esse propriedade é pra esse proposito mesmo? Alguem que usa ela funciona bem, 
nas alterações, inclusões etc...?

Eu não acho 12.000 registros uma quantidade tão grade de registros, fiquei 
assustado com a demora do clientdataset pra traser.

Peço uma sujestão do pessoa que trabalhar com uma quantidade de dados grande 
para saber qual melhor forma de trabalhar usando o ClientDataSet com 
relacionamentos master/detail.

Obrigado a todos.

At.
Ricardo Lima

[As partes desta mensagem que não continham texto foram removidas]

Responder a