Sao duas coisas
Uma e utilizar o mestre detalhe com nested dataset como esta no vídeo do FDD 2008 que para melhorar o trafego vc deve no dataset de detalhe colocar o packagerecords como 1 e aplicar um CDs.disablecontrols antes de dar um open e um enablecontrols após isso, ajuda na performance de abertura e na redução de trafego pois os controles visuais não forçarão o packagerecord, outra fora e alinhar o uso do getnextpack. Para tabelas simples e principalmente para relatórios é muito importante. Para movimentos mais pesados e complexos eu uso o mestre detalhe descontecado, como mostro na serie de artigos que esta na active Delphi desde a edição 74 e cujo exemplo esta no meu link de downloads também. Os exemplos multicamadas precisam, dependendo do caso, do banco de dados instalado (InterBase, FireBird, Oracle ou SQL Server), no servidor de aplicação geralmente tem um arquivo de configuração de acesso ao banco e nos clientes um arquivo para este acessar o servidor. Esta tudo explicado no artigo. Se vc postar o erro e disser qual o Delphi que esta utilizando eu consigo te indicar como rodar o exemplo. Abs Bruno From: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] On Behalf Of Eny Urias Sent: quarta-feira, 28 de julho de 2010 18:28 To: delphi-br@yahoogrupos.com.br Subject: Res: [delphi-br] [CLIENTDATASET 3 TABELAS] Eu baixei o codigo do exemplo que vc deu... Eu não tenho experiencia nenhuma com FireBird... Não sei se precisa configurar alguma coisa pra poder rodar o exemplo.... Só sei que não rodou...rs E esse esquema de mestre/detalhe é exatamente o que eu utilizava antes de descobrir o quanto de trafego ele causa na rede... por isso parei de usar... Mas, para sistemas de pequeno porte dá pra utilizar tranquilo... -- Eny Trova Urias "Somos o que repetitivamente fazemos, portanto, a excelência não é um feito, mas um hábito"- Aristóteles ________________________________ De: Bruno Lichot <bruno.lic...@microfocus.com <mailto:bruno.lichot%40microfocus.com> > Para: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br> Enviadas: Terça-feira, 27 de Julho de 2010 23:18:41 Assunto: RE: [delphi-br] [CLIENTDATASET 3 TABELAS] Uma boa forma é sempre conduzir pesquisas com filtros e trabalhar este trafego de registros através do packagerecords. Uma outra forma é colocar a navegação de pais e filhos inerentes a sua vizualizaçào e acontecendo por demanda. Eu estou com artigos na active Delphi desde a edição 74 sobre desenvolvimento comercial com Delphi e DataSnap, e um dos tópicos e o tratamento mestre-detalhe. No meu link de downloads tem alguns exemplos sobre isso, inclusive o exemplo do artigo e um vídeo do FDD 2008 onde mostro este e outros recursos do clientdataset: http://cc.embarcadero.com/author/795118 Abracos Bruno From: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br> [mailto:delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br> ] On Behalf Of Eny Urias Sent: terça-feira, 27 de julho de 2010 09:37 To: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br> Subject: Res: [delphi-br] [CLIENTDATASET 3 TABELAS] 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 <mailto:fabricio.colombo.mva%40gmail.com> <mailto:fabricio.colombo.mva%40gmail.com> > Para: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br> <mailto:delphi-br%40yahoogrupos.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 <mailto:enyurias%40yahoo.com.br> <mailto:enyurias%40yahoo.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 <mailto:gyncowboy%40yahoo.com.br> > <mailto:gyncowboy%40yahoo.com.br> ><gyncowboy%40yahoo.com.br>> > > Para: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br> > <mailto:delphi-br%40yahoogrupos.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] Click here <https://www.mailcontroller.altohiway.com/sr/8GD0+!7FazfTndxI!oX7UnlPSUZHzmrIv87QlqbO1oW0pif+!yn+8LMnkGnku+LrnRTBxvdS5uLX9jTmmkEZ8A==> to report this email as spam. This message has been scanned for viruses by MailController <http://www.MailController.altohiway.com/> . [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]