PREENCHER COMBO MAIS R?PIDO?

FBGSYSTEMS 30/03/2017 16:49:49
#472899
Boa tarde.

Sempre fiz o preenchimento de combobox da seguinte maneira:

Form_Load()

[ô]faz o select no bd
do while not recordset.eof
cmb.additem recordset!campo & [Ô] - [Ô] & format(recordset!chaveprimaria,[Ô]00000[Ô]) [ô] preciso deste trecho pra ajudar a setar o codigo do produto
recordset.movenext
loop
end sub


Porém com um cliente isso esta muito lento pois ele tem mais de 11mil itens cadastrados e o bendito não desativa os que ele não está usando. E pra piorar a lentidao, ele tem umas máquinas que estão bem ruins.
Enfim, existe alguma maneira mais rápida de preencher o combo?
OMAR2011 30/03/2017 16:58:16
#472901
Encerra e Mude o post.
Está no VBNET sendo código e VB6.
FBGSYSTEMS 30/03/2017 17:03:10
#472902
Opa me desculpe, me descuidei aqui.
KERPLUNK 30/03/2017 17:15:35
#472904
Já experimentou usar o método GetRows?
FBGSYSTEMS 30/03/2017 17:33:08
#472905
Não tentei e ainda não conhecia. Vou testar com a banco deste cliente e posto o resultado aqui.
LLAIA 30/03/2017 17:53:03
#472907
Quando a combo fica muito pesada, eu já descarto ela do load e coloco um campo pro usuário filtrar e preencher a combo. Um filtro com no mínimo 3 caracteres pra validar a busca.
FBGSYSTEMS 30/03/2017 17:58:29
#472908
LLAIA, eu também acho, porém no mesmo sistema tenho clientes com poucos produtos e tenho esse cliente com muitos. Fazer uma configuração ficaria dificil parametrizar a partir de quantos eu mudaria a forma de pesquisa.

Fiz aqui com o GetRows, como eu faria pra cronometrar o tempo de execução?
FBGSYSTEMS 30/03/2017 18:28:18
#472909
Fiz o teste aqui e improvisei com um timer tendo como interval 100 e o getrows pareceu mais lento.
JABA 30/03/2017 20:19:23
#472912
Não se usa o ID diretamente na String, para isso existe a propriedade ItemData. Segue um exemplo:

Form_Load()

do while not recordset.eof
cmb.additem recordset!campo
cmb.ItemData(cmb.NewIndex) = format(recordset!chaveprimaria,[Ô]00000[Ô])
recordset.movenext
loop

end sub


Citação:

format(recordset!chaveprimaria,[Ô]00000[Ô])



A formatação de muitos dados deixa o seu algoritmo lento. Procure fazer isso de outra maneira, talvez formatando na hora de usar os dados.
FBGSYSTEMS 31/03/2017 11:33:01
#472925
JABA, obrigado pela resposta, nao entendi essa parte:

[Ô]A formatação de muitos dados deixa o seu algoritmo lento. Procure fazer isso de outra maneira, talvez formatando na hora de usar os dados. [Ô]

A parte do itemData vou procurar saber mais.
JABA 31/03/2017 12:19:03
#472927
Citação:

[Ô]A formatação de muitos dados deixa o seu algoritmo lento. Procure fazer isso de outra maneira, talvez formatando na hora de usar os dados. [Ô]



O que eu quis dizer aí que você poderia retirar essa formatação quando fosse incluir os registros na combobox. Se por venturar você viesse a precisar de tal formatação para fazer alguma coisa, formataria-a na hora de se usar, como na hora de pesquisar, incluir, etc. Fazendo como você vem fazendo, o processamento dos dados estão sendo duplicados, tornando-o lento para uma grande quantidade de dados. Os IDs criados no banco são para o controle do próprio banco, não é necessário mostrar isso ao usuário final. A não ser que a lógica de negócio do seu projeto obrigue-o à isso.


Tópico encerrado , respostas não são mais permitidas