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

Kelver Merlotti kmerlotti em gmail.com
Sex Out 16 17:44:32 -03 2009


Isso já havia sido testado antes..
Mesmo fazendo ..campo = 159.05, o registro não era encontrado.
Além disso, o campo não tem charset nem colate.
De qualquer forma, agradeço a atenção.

A idéia do Douglas de usar o between talvez resolva realmente, porém
não posso mudar o sistema agora, até porque em 99% dos casos funciona.
Neste momento, é preferível administrar este 1% de erro do que alterar
o sistema.

Atenciosamente,
Kelver Merlotti
Coordenador Editorial do Portal www.ActiveDelphi.com.br
Contato: kelver em activedelphi.com.br
Google: kmerlotti em gmail.com
Twitter: http://twitter.com/kmerlotti
Tem um segundo? Então, dá uma olhadinha nisso:
Um site de publicidades, de Portugal, está pagando em euros (quase 3x
mais que em reais) pra quem estiver disposto a:
 * Ler anúncios
 * Visitar sites
 * Clicar em banners
 * Navegar na NET
 * Ler e-mails
 * Convidar novos usuários
O pagamento é feito em cheque! Registra lá!! Não custa nada! ;-)
http://www.publipt.com/pages/index.php?refid=kmerlotti



2009/10/16 Evandro da Silva Amparo <evandro.amparo em gmail.com>:
> Me corrijam se eu estiver errado (ainda estou aprendendo), mas se o campo é
> numérico e não texto, você pode fazer a consulta assim:
>
> select * from tabela where campo = 159.05
>
> sem o apóstrofo. Acredito que por causa do CHARSET ou COLLATE, o firebird
> não esteja entendendo o ponto (.) como separador decimal, mas para
> constantes numéricas ele usa o padrão inglês, pelo que eu sei.
>
> Eu somente uso o apóstrofo para campos VARCHAR.
>
> Tente e diga se deu certo.
>
> Abraço
>
> 2009/10/15 Douglas Tosi <douglasht em gmail.com>
>
>> 2009/10/15 Kelver Merlotti <kmerlotti em gmail.com>:
>> > Obs 1: O campo é do tipo DOUBLE PRECISION, no dialeto 1, e quando foi
>> > inserido foi utilizando algo como: insert into tabela(campo)
>> > values('159.05')
>>
>> Não sei dizer porque a conversão da string '159.05' é diferente da
>> constante 159.05, mas de qualquer maneira não tem garantia. É o
>> problema do double precision. Não dá pra garantir a igualdade.
>>
>> Você pode comparar o período, por exemplo:
>> campo between 159.050 and 159.051.
>>
>> 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
>>
> ______________________________________________
> 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