em tempo, onde você sugere que eu coloque a chamada da função que vai ao banco 
???
 
Stainle

--- Em qui, 14/5/09, berdam <berdamzi...@yahoo.com.br> escreveu:


De: berdam <berdamzi...@yahoo.com.br>
Assunto: Re: [delphi-br] ClientDataSet - Lookup Lento
Para: delphi-br@yahoogrupos.com.br
Data: Quinta-feira, 14 de Maio de 2009, 18:43








outro detalhe, procure não colocar no oncalcfields, chamadas de acesso 
ao banco, pois em todas alteração de todos os campos, que for feita nos 
campos do cds, eu disse todas, o método calcfields é chamado, isso pode 
ocasionar lentidão.

Nivaldo Stainle escreveu:
>
>
> entendi, mas o que deixa com a pulga atrás da orelha é que com a mesma 
> sintaxe e modelo, o BDE é mais rápido do que o CDS, é isto que não 
> entendo, estou trocando para algo melhor pelo que estou lendo e no 
> entanto estou vendo outra coisa na prática, ou seja, o que eu fazia 
> com o BDE não estou fazendo com BSS, ClientDataSet, etc.; pelo menos 
> com a mesma velocidade, acho que estou fazendo algo errado, é isto que 
> quero descobrir.
> Stainle
>
> --- Em qua, 13/5/09, Evandro Siqueira <vans...@gmail. com 
> <mailto:vansiqq% 40gmail.com> > escreveu:
>
> De: Evandro Siqueira <vans...@gmail. com <mailto:vansiqq% 40gmail.com> >
> Assunto: Re: [delphi-br] ClientDataSet - Lookup Lento
> Para: delphi...@yahoogrup os.com.br <mailto:delphi- br%40yahoogrupos .com.br>
> Data: Quarta-feira, 13 de Maio de 2009, 15:44
>
> Stainle,
>
> Como vc informou qual o banco de dados, estou pressupondo que seja o
> firebird e neste contexto, sugiro 2 coisas:
>
> 1) no Seleciona( select * from ... )... substitua o * pelo nome dos
> campos que vc irá utilizar. Explicando: qd vc utiliza select * from
> tabela, provoca um fetch all nela mesmo que a instrução contenha uma
> cláusula where, o que tornará a consulta lenta, dependendo do tamanho da
> tabela
>
> 2) se a lookup source contiver muitas linhas, sugiro procurar uma outra
> alternativa, pq este componente é perfeito para aplicações desktop mas
> em aplicações client server ou multicamadas, um lookup de muitas linhas
> pode se tornar um pesadelo em termos de performance.
>
> stainle2003 escreveu:
> >
> >
> > Boa Tarde, novamente pedindo ajuda.
> > Estou gradativamente mudando meu sistema de BDE para Multicamadas,
> > portando deixo de usar Query para usar ClientDataSet acessando a
> > máquina que tem o BSS, o que acontece:
> > Preciso fazer Lookup e sei que fica lento, então na Query(BDE) em
> > OnCalcFields eu uso uma função que Seleciona(select * from ...) UMA
> > dentre 4 chaves(00211001, 00211***, 0021****, 002*****), por exemplo,
> > de uma tabela para que eu ache um valor para calcular o Preço Líquido
> > por exemplo da tabela principal; acontece que no BDE(query) funciona
> > com uma velocidade até que razoável, mas ao mudar para o
> > ClientDataSet, fica uma calamidade, até mudei a função chamada no
> > OnCalcFields para ao invés de SQL eu passei a usar da forma abaixo,
> > mas mesmo assim não me alegrou, será que vou ter que continuar a usar
> > o BDE, neste caso ???
> > procedure TDados.ver_desconto ;
> > var
> > wscodigo : string;
> > begin
> > wscodigo := Dados.CDSEstCodes. Value;
> >
> > Dados.CDSDes. Close;
> > Dados.CDSDes. IndexName := 'DEFAULT_ORDER' ;
> > Dados.CDSDes. Open;
> > Dados.CDSDes. IndexFieldNames := 'nrolinha;grupo_ ini;sub_ini; nropeca';
> > Dados.CDSDes. SetKey;
> > Dados.CDSDesNrolinh a.Value := StrToInt(copy( wscodigo, 1, 3));
> > Dados.CDSDesGrupo_ Ini.AsString := copy(wscodigo, 5, 1);
> > Dados.CDSDesSub_ Ini.AsString := copy(wscodigo, 6, 1);
> > Dados.CDSDesNropeca .AsString := copy(wscodigo, 8, 3);
> > if Dados.CDSDes. GotoKey then
> > begin
> > Dados.CDSEstDescont o.Value := Dados.CDSDesDesco05 .Value;
> > exit;
> > end;
> > Dados.CDSDes. IndexFieldNames := 'nrolinha;grupo_ ini;sub_ini; nropeca';
> > Dados.CDSDes. SetKey;
> > Dados.CDSDesNrolinh a.Value := StrToInt(copy( wscodigo, 1, 3));
> > Dados.CDSDesGrupo_ Ini.AsString := copy(wscodigo, 5, 1);
> > Dados.CDSDesSub_ Ini.AsString := copy(wscodigo, 6, 1);
> > Dados.CDSDesNropeca .AsString := '***';
> > if Dados.CDSDes. GotoKey then
> > begin
> > Dados.CDSEstDescont o.Value := Dados.CDSDesDesco05 .Value;
> > exit;
> > end;
> > Dados.CDSDes. IndexFieldNames := 'nrolinha;grupo_ ini;sub_ini; nropeca';
> > Dados.CDSDes. SetKey;
> > Dados.CDSDesNrolinh a.Value := StrToInt(copy( wscodigo, 1, 3));
> > Dados.CDSDesGrupo_ Ini.AsString := copy(wscodigo, 5, 1);
> > Dados.CDSDesSub_ Ini.AsString := '*';
> > Dados.CDSDesNropeca .AsString := '***';
> > if Dados.CDSDes. GotoKey then
> > begin
> > Dados.CDSEstDescont o.Value := Dados.CDSDesDesco05 .Value;
> > exit;
> > end;
> > Dados.CDSDes. IndexFieldNames := 'nrolinha;grupo_ ini;sub_ini; nropeca';
> > Dados.CDSDes. SetKey;
> > Dados.CDSDesNrolinh a.Value := StrToInt(copy( wscodigo, 1, 3));
> > Dados.CDSDesGrupo_ Ini.AsString := '*';
> > Dados.CDSDesSub_ Ini.AsString := '*';
> > Dados.CDSDesNropeca .AsString := '***';
> > if Dados.CDSDes. GotoKey then
> > begin
> > Dados.CDSEstDescont o.Value := Dados.CDSDesDesco05 .Value;
> > end;
> >
> > end;
> >
> > procedure TDados.CDSEstCalcFi elds(DataSet: TDataSet);
> > begin
> > ver_desconto( );
> > Dados.CDSEstLiquido .Value := Dados.CDSEstPv1. Value * (1 -
> > Dados.CDSEstDescont o.Value / 100);
> > end;
> >
> > procedure TDados.CDSDesBefore Open(DataSet: TDataSet);
> > begin
> > Dados.CDSDes. IndexName := 'DEFAULT_ORDER' ;
> > end;
> > grato
> > Stainle
> >
>
> -- 
> []’s.
>
> Evandro Siqueira
> Programador de Sistemas
> L’essentiel Lingerie
> (79) 3254-5511 Ramal 218
> skype: evandro.lessentiel
>
> ------------ --------- --------- ------
>
> -- 
> <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
>
> Veja quais são os assuntos do momento no Yahoo! +Buscados
> http://br.maisbusca dos.yahoo. com <http://br.maisbusca dos.yahoo. com>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> 

-- 
------------ --------- --------- --------- --------- -----
Uberdam Cavaletti
Formado em Tecnologia da informação - Unoesc - Xxe
Pós graduado em Desenvolvimento Java - Unoesc - Xxe

Acesse http://www.curricul ar.com.br/ berdam
Acesse http://passandovene no.blogspot. com

------------ --------- --------- --------- --------- -----

















      Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com

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

Responder a