Erro ao filtrar registros.
Bom dia pessoal,
estou com problema na hora de fazer o filtro nos meus resgistros, estou usando banco de dados MySQL e uso o componente ZEOS.
o erro é o seguinte:
[color=red:4548446fb2]
ERangeError with message : ´Range Check Error´.[/color:4548446fb2]
O que acontece, tenho um combo box que recebe os valores a serem filtrados e a medida que o usuário seleciona as opções ele vai mostrando os registros.
o codigo é este:
Mais uma pergunta, por acaso o filtro aceita códigos em SQL?
estou com problema na hora de fazer o filtro nos meus resgistros, estou usando banco de dados MySQL e uso o componente ZEOS.
o erro é o seguinte:
[color=red:4548446fb2]
ERangeError with message : ´Range Check Error´.[/color:4548446fb2]
O que acontece, tenho um combo box que recebe os valores a serem filtrados e a medida que o usuário seleciona as opções ele vai mostrando os registros.
o codigo é este:
with qryPedido do begin with cbExibir do begin if ItemIndex = 0 then Filtered := False else Filter := qryPedidoTipo.FieldName + ´ = ´ + Items[ItemIndex]; end; end;
Mais uma pergunta, por acaso o filtro aceita códigos em SQL?
Douglasf
Curtidas 0
Respostas
Douglasf
07/01/2005
sobe
GOSTEI 0
Douglasf
07/01/2005
Sobe
GOSTEI 0
Massuda
07/01/2005
o erro é o seguinte:
[color=red:9bfcdc4002]
ERangeError with message : ´Range Check Error´.[/color:9bfcdc4002]
[...]
o codigo é este:
with qryPedido do begin with cbExibir do begin if ItemIndex = 0 then Filtered := False else Filter := qryPedidoTipo.FieldName + ´ = ´ + Items[ItemIndex]; end; end;
Experimente testar se ItemIndex < 0 (nenhum item selecionado no combobox) antes de atribuir um valor a Filter.
Mais uma pergunta, por acaso o filtro aceita códigos em SQL?
Acho que não, mas dê uma olhada na ajuda do Delphi sobre a propriedade Filter do TDataSet para ver exemplos expressões válidas para filtro.
Uma outra coisa... se qryPedidoTipo é um campo string, então seu filtro deveria ser:
Filter := qryPedidoTipo.FieldName + ´ = ´´´ + Items[ItemIndex] + ´´´´;
GOSTEI 0
Douglasf
07/01/2005
Muito obrigado pela resposta,
infelizmente não resolveu mas consegui encontrar a origem do problema só falta resolver.
Pelo que me parece o problema esta com a [color=red:c52bb2327e]Query[/color:c52bb2327e], pois fiz todos os testes com [color=red:c52bb2327e]cbExibe(ComboBox)[/color:c52bb2327e], olhei os valores que o I[color=red:c52bb2327e]tems[ItemIndex] e o ItemIndex[/color:c52bb2327e] me retornou e esta corretíssimo.
infelizmente não resolveu mas consegui encontrar a origem do problema só falta resolver.
Pelo que me parece o problema esta com a [color=red:c52bb2327e]Query[/color:c52bb2327e], pois fiz todos os testes com [color=red:c52bb2327e]cbExibe(ComboBox)[/color:c52bb2327e], olhei os valores que o I[color=red:c52bb2327e]tems[ItemIndex] e o ItemIndex[/color:c52bb2327e] me retornou e esta corretíssimo.
GOSTEI 0
Massuda
07/01/2005
Achava que o problema era com o combobox... não tenho idéia de qual problema possa ter na sua query. Em qual linha do seu código o Delphi está mostrando a exceção?
GOSTEI 0
Douglasf
07/01/2005
Filter := qryPedidoTipo.FieldName + ´ = ´ + ´´´´ + Items[ItemIndex] + ´´´´;
GOSTEI 0
Massuda
07/01/2005
Nessa linha...
Filter := qryPedidoTipo.FieldName + ´ = ´ + ´´´´ + Items[ItemIndex] + ´´´´;
Posso estar enganado, mas a única coisa que pode gerar o ERangeError é o combobox... Só para verificar se o problema é no combobox, experimente testar assim:if (ItemIndex >= 0) and (ItemIndex < Items.Count) then begin Filter := qryPedidoTipo.FieldName + ´ = ´ + ´´´´ + Items[ItemIndex] + ´´´´; end else ShowMessage(´ItemIndex fora de faixa!´);
GOSTEI 0