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]

Responder a