PREENCHER COMBO MAIS R?PIDO?
Boa tarde.
Sempre fiz o preenchimento de combobox da seguinte maneira:
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?
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?
Encerra e Mude o post.
Está no VBNET sendo código e VB6.
Está no VBNET sendo código e VB6.
Opa me desculpe, me descuidei aqui.
Já experimentou usar o método GetRows?
Não tentei e ainda não conhecia. Vou testar com a banco deste cliente e posto o resultado aqui.
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.
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?
Fiz aqui com o GetRows, como eu faria pra cronometrar o tempo de execução?
Fiz o teste aqui e improvisei com um timer tendo como interval 100 e o getrows pareceu mais lento.
Não se usa o ID diretamente na String, para isso existe a propriedade ItemData. Segue um exemplo:
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.
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.
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.
[Ô]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.
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