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]