é, 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 -----------------------------------------------------