Quantidade de linhas no DBComboBox
Alguém poderia dizer qual é a capacidade máxima de linhas que podem ser inseridas no DBComboBox?
Como vocês sabem exite no DBComboBox uma propriedade chamada Items e através de linhas de código eu insiro linhas para o usuário poder escolher uma opção, mas tem algum limite para essa inclusão? Abaixo estou enviando a rotina que eu executo para incluir linhas:
Query1.close;
Query1.Open;
While not Query1.EOF do
begin
DBComboBox1.Items.Add(Query1.FieldByName(´NomeCliente´).asString);
Query1.Next;
end;
Segundo um colega meu, após inserir uma certa quantidade de linhas o programa dava um aviso de erros do tipo: NÃO POSSO MAIS INSERIR LINHAS, ou algo desse tipo.
Se alguém puder me responder fico agradecido ou se alguém tiver uma rotina melhor também aceito sugestões.
Reginaldo
____________________________
Em terra de programador, quem tem Delphi é rei.
Como vocês sabem exite no DBComboBox uma propriedade chamada Items e através de linhas de código eu insiro linhas para o usuário poder escolher uma opção, mas tem algum limite para essa inclusão? Abaixo estou enviando a rotina que eu executo para incluir linhas:
Query1.close;
Query1.Open;
While not Query1.EOF do
begin
DBComboBox1.Items.Add(Query1.FieldByName(´NomeCliente´).asString);
Query1.Next;
end;
Segundo um colega meu, após inserir uma certa quantidade de linhas o programa dava um aviso de erros do tipo: NÃO POSSO MAIS INSERIR LINHAS, ou algo desse tipo.
Se alguém puder me responder fico agradecido ou se alguém tiver uma rotina melhor também aceito sugestões.
Reginaldo
____________________________
Em terra de programador, quem tem Delphi é rei.
Ponce :)
Curtidas 0
Respostas
Vinicius2k
06/08/2004
Colega,
O limite é de 32.736 linhas, tentativa de inserção após este número irá gerar uma exceção do EOutOfResouces, com a mensagem que vc descreveu...
Espero ter ajudado...
T+
O limite é de 32.736 linhas, tentativa de inserção após este número irá gerar uma exceção do EOutOfResouces, com a mensagem que vc descreveu...
Espero ter ajudado...
T+
GOSTEI 0
Lucas Silva
06/08/2004
Eu nunca vi falar neste limite não...
pode fazer o teste, ai.... é só ter um pouco de paciência.....
:lol:
procedure TForm1.Button1Click(Sender: TObject); var i: Integer; begin Screen.Cursor := crHourGlass; for i := 0 to 150000 do DBComboBox1.Items.Add(IntToStr(i)); Screen.Cursor := crDefault; end;
pode fazer o teste, ai.... é só ter um pouco de paciência.....
:lol:
GOSTEI 0
Keitarosan
06/08/2004
...EOutOfResouces...
Esse limite não é do ComboBox nao Vina2K, mas sim do seu PC, hehe
tu acabou com os recursos do dele...
Aí Ponce, desse jeito que você faz, não é muito viável não, correr toda uma tabela dependendo do tamanho dela, pode ser beeem lento...
Aconselharia vc a usar um DBLookUpComboBox... :wink:
GOSTEI 0
Vinicius2k
06/08/2004
Esse limite não é do ComboBox nao Vina2K, mas sim do seu PC, hehe tu acabou com os recursos do dele...
:shock:
Sério? eu tbm achei estranho, pq o limite teórico seria 2147483647 mas...
Fiz um teste numa outra máquina aqui e o valor é diferente 32.767... realmente vai depender da máquina a capacidade de adicionar linhas...
T+
GOSTEI 0
Macario
06/08/2004
[quote:c008e72412=´Ponce :)´]
Query1.close;
Query1.Open;
While not Query1.EOF do
begin
DBComboBox1.Items.Add(Query1.FieldByName(´NomeCliente´).asString);
Query1.Next;
end;
Segundo um colega meu, após inserir uma certa quantidade de linhas o programa dava um aviso de erros do tipo: NÃO POSSO MAIS INSERIR LINHAS, ou algo desse tipo.
Se alguém puder me responder fico agradecido ou se alguém tiver uma rotina melhor também aceito sugestões.
[/quote:c008e72412]
Olá programador, conforme a dica o colega [b:c008e72412]Lucas[/b:c008e72412], é possivel sim incluse fui alem inclui [b:c008e72412]500.000[/b:c008e72412] linhas(em 10 segundos).
Creio que o limite seja os recursos da maquina utilizada.
Quanto a voce incluir o nome do cliente em dbcombobox acho desnecessario, pois dependendo do tamanho da tabela e o tipo do banco
isso pode se tornar muito lento,
sendo qua há outras maneiras de se obter isso.
qualquer duvida estamos aqui.
Query1.close;
Query1.Open;
While not Query1.EOF do
begin
DBComboBox1.Items.Add(Query1.FieldByName(´NomeCliente´).asString);
Query1.Next;
end;
Segundo um colega meu, após inserir uma certa quantidade de linhas o programa dava um aviso de erros do tipo: NÃO POSSO MAIS INSERIR LINHAS, ou algo desse tipo.
Se alguém puder me responder fico agradecido ou se alguém tiver uma rotina melhor também aceito sugestões.
[/quote:c008e72412]
Olá programador, conforme a dica o colega [b:c008e72412]Lucas[/b:c008e72412], é possivel sim incluse fui alem inclui [b:c008e72412]500.000[/b:c008e72412] linhas(em 10 segundos).
Creio que o limite seja os recursos da maquina utilizada.
Quanto a voce incluir o nome do cliente em dbcombobox acho desnecessario, pois dependendo do tamanho da tabela e o tipo do banco
isso pode se tornar muito lento,
sendo qua há outras maneiras de se obter isso.
qualquer duvida estamos aqui.
GOSTEI 0
Deryck
06/08/2004
Cara , com certeza tem um numero máximo, mas esse número também deve estar relacionado à maquina que você possui!Pelo que eu sei é isso!
GOSTEI 0