[firebase-br] Valor não encontrado no select

Evandro da Silva Amparo evandro.amparo em gmail.com
Ter Out 20 10:53:42 -03 2009


Eu fiz um teste aqui com o Firebird 2.1. Se o seu campo tiver mais
algarismos significativos além do .05, ou seja, mais de 2 casas decimais,
não funciona.
Exemplo:
Com valores entre 159,051 e 159,0500000000001 (digitados diretamente no grid
do IBExpert) a consulta não encontra o registro pelo campo double mas
encontra pelo código.

Quando vc faz o update para 1 e volta para 159,05 o campo está como valor
exato que vc procura. Não tem como não encontrar. Mas se o valor do seu
campo é resultado de algum cálculo, é provável que estejam sendo enviadas
mais casas decimais para o FB. A solução seria arredondar com RoundTo ou
algo parecido antes de compor o insert.

Como foi dito, é o problema com o double: vc tem precisão mas também tem
problemas para comparar.

Até++

2009/10/19 Douglas Tosi <douglasht em gmail.com>

> 2009/10/19 Evandro da Silva Amparo <evandro.amparo em gmail.com>:
> > O campo não tem charset, obviamente, por ser numérico, mas o BD tem.
>
> O charset do banco de dados funciona apenas como um default para os
> campos char e varchar que não têm charset especificado.
>
> Não tem influência sobre campos numéricos.
>
> hth,
> --
> Douglas Tosi
> www.sinatica.com
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista