Não quero mesmo trazer "todos" os registros do pai... Mas, se o cliente quiser fazer uma simples pesquisa que me traga uns 50 registros... Mesmo assim eu nao quero trazer "tudo"...
Então eu estou fazendo assim: No evento AfterScroll do Pai eu fecho e abro o filho atraves do parametro enviado pelo pai... dessa forma ele só me traz os filhos do pai onde está o ponteiro. Tem alguma idéia melhor? -- Eny Trova Urias "Somos o que repetitivamente fazemos, portanto, a excelência não é um feito, mas um hábito"- Aristóteles ________________________________ De: Fabricio Colombo <fabricio.colombo....@gmail.com> Para: delphi-br@yahoogrupos.com.br Enviadas: Terça-feira, 27 de Julho de 2010 9:01:07 Assunto: Re: [delphi-br] [CLIENTDATASET 3 TABELAS] Mais isso não é uma falha, ele foi feito pra trabalhar assim, aliás, não conheço nenhum DataSet que faça diferente. O que vc queria é que ele fizesse *Lazy Loading*. ** <http://en.wikipedia.org/wiki/Lazy_loading>Na minha opnião, quase nunca é viável carregar todos os dados do pai, principalmente se utilizar DataSnap, e portanto, isso foi abolido no nosso sistema. Por exemplo, de acordo com o cliente, a mesma tabela PAI pode variar de 10 mil até mais de 4 milhões de registros, então temos que fazer o sistema pensando no cliente de 4 milhões. Não é viável abrir a tabela inteira, mesmo que ele não tivesse filhos, por isso o usuário consulta apenas um registro por vez, e é o suficiente, ele não precisa de todos os registros. Nosso sistema nem tem navegador de registros e isso não dificulta o trabalho do usuário, pois vc tem que suprir essa "limitação" com pesquisas mais ricas e agéis. Pense um pouco na escalabilidade do sistema. E se o seu usuário abrir essa tabela de 100.000 e clicar para ir ao último registro? Ele não vai trazer todos os registros da mesma maneira, só que de modo mais custoso? Como vc controla a transação, visto que aparentemente vc não usa mais Nested Datasets? Abraços, Fabricio Em 26 de julho de 2010 19:45, Eny Urias <enyur...@yahoo.com.br> escreveu: > > > Vamos fazer o seguinte.... > > Utilize uma ferramenta tracer e depois me fala o que acontece no momento em > que > vc abre o cds Pai. > > No meu acontece assim: vamos imaginar uma tabela pai com 100.000 > registros... E > uma tabela filho com 10 itens para cada pai... Então o programa vai trazer > na > memória 1.000.000 certo? > > Eu quero carregar todos os registros do cds pai e, somente trazer os do > filho, > quando o ponteiro estiver no pai.. entendeu? Foi aí que eu comecei a > utilizar o > evento AfterScroll... > > > -- > Eny Trova Urias > > "Somos o que repetitivamente fazemos, portanto, a excelência não é um > feito, mas > um hábito"- Aristóteles > > ________________________________ > De: Andre Yahoo <gyncow...@yahoo.com.br <gyncowboy%40yahoo.com.br>> > > Para: delphi-br@yahoogrupos.com.br <delphi-br%40yahoogrupos.com.br> > Enviadas: Sábado, 24 de Julho de 2010 20:33:03 > Assunto: Re: Res: [delphi-br] [CLIENTDATASET 3 TABELAS] > > Cara Eny, > > Não entendi o porque do problema, uma vez que ao carregar o registro > pai, você vai estar filtrando ele, o que retornará para o registro > mestre somente um registro, já para o filho você estará retornando todos > > os detalhes que estão vinculados com este registro mestre. > > Mas você disse: "quando o CDS carrega os registros do Master, ele tras > também, para cada registro pai, todos os registros do filho", quer dizer > que estava retornando todos os mestres ? Para a programação C/S você > retorna somente um registro mestre, que é o que o usuário vai trabalhar > nele, não precisa retornar todos os registros. Se era essa a situação, o > > problema era estrutural e com erro de programação, não do componente ou > da maneira com os mesmos eram usados. > > Se não for isso que acontecia e puder explicar melhor, pois acho que > muitos como eu podem não ter entendido a situação que ocorria muito bem. > > Atenciosamente, > > André Luis da Silveira > > Siagri - Sistemas de Gestao Ltda. > > __________________________________________________ > Fale com seus amigos de graça com o novo Yahoo! Messenger > http://br.messenger.yahoo.com/ > > [As partes desta mensagem que não continham texto foram removidas] > > > [As partes desta mensagem que não continham texto foram removidas] ------------------------------------ -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> [As partes desta mensagem que não continham texto foram removidas]