é, eu tbm já pensei nisso antes, fica complicado realmente, mas se puder 
armazenar isso em uma variável global fica melhor.

Nivaldo Stainle escreveu:
>
>
> 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 
> <mailto:berdamzinho%40yahoo.com.br>> escreveu:
>
> De: berdam <berdamzi...@yahoo.com.br <mailto:berdamzinho%40yahoo.com.br>>
> Assunto: Re: [delphi-br] ClientDataSet - Lookup Lento
> Para: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.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 <http://br.maisbuscados.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.curricular.com.br/berdam
Acesse  http://passandoveneno.blogspot.com

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

Responder a