Selecao DevMedia QUERO SER PRIME

Fórum limitar registro no combobox #331674

20/10/2006

0

Tenho uma rotina que coloca todos os clientes em um combobox em modo de execursão, so que a tabela tem 8 mil clientes e esta muito lento o loop, como posso aumentar a velocidade do loop
a rotina é esta:

[color=red:40001c862b]Combo3.Items.clear;
DM.SDS_Clientes.First;
While not DM.SDS_Clientes.Eof do begin
Combo3.Items.add(DM.SDS_clientes.Fieldbyname(´Nome´).asstring);
DM.SDS_Clientes.Next;
End;[/color:40001c862b]

Estou aberto a ideias... Obrigado a todos


Dpinho

Dpinho

Responder

Posts

20/10/2006

Corcos

não testei

pq não roda um select nome from tabela, armazena em uma variavel e joga a variavel no combo?

talvez seja mais rapido


Responder

Gostei + 0

21/10/2006

Paulocesar1301

Uma query é o melhor remédio mesmo, mas tente criá-la em tempo de execução... componentes, conexão, abertura, etc... no meu caso me parece rodar um pouco mais rápido...
Se vc recarrega a listagem com freqüência e os nomes não mudam tanto... carregue a tabela para uma pasta temporária e apenas teste a data da base quando for atualizar a listagem (no meu caso prefico o dividir para conquistar... não só em tabelas, mas em bancos tb, agiliza e facilita a manutenção)... uma boa é guardar a hora em que foi atualizada a lista e, de acordo com a experiência que tens quanto à atualização de seu banco colocar um período mínimo para atualização... algo do tipo:

If (HoraDaUltimaCarga + StrToTime(´00:30:00´)) < Time Then
begin
  If FileAge(CamDoBancoLocal) < FileAge(CamDoBancoNaRede) Then
     CopyFile(CamDoBancoNaRede, CamDoBancoLocal, False);
end;


... sei lá, é só uma idéia...
... e, é claro, sempre inclua uma barra de progresso para qualquer coisa que for fazer... mesmo sendo um processo lento, meus clientes ficam despreocupados quando sabem em que pé anda uma tarefa :wink:

Good Vibrations :wink: Good Coding :wink:


Responder

Gostei + 0

23/10/2006

Rodc

Tenta colocar o Combo3 invisível na hora de adicionar os dados.

Outra possibilidade seria criar um TStringList, adicionar os dados nele, e depois adicionar o StringList todo no combo com Combo3.Items.AddStrings(StringList);

E tenha certeza de ter colocado a propriedade Sort do Combobox como false.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar