Re: [firebase-br] Parâmetros nulos
Paulo Geloramo
paulogeloramo em terra.com.br
Sex Jul 21 13:43:13 -03 2006
SELECT *
FROM CLIENTE
WHERE NOME = COALESCE(:PNOME, NOME)
[]s
Paulo Geloramo
-----Mensagem Original-----
De: "Suporte Sinapse Informática" <suporte em sinapseinformatica.com.br>
Para: "FireBase" <lista em firebase.com.br>
Enviada em: terça-feira, 18 de julho de 2006 19:53
Assunto: Re: [firebase-br] Parâmetros nulos
Olá Fabrício,
Eu já tive uma necessidade bem parecida em um SELECT que fiz uma vez. Eu tentei com null não deu certo, daí eu fiz com "-". Daí
deu certinho. Desta forma você poderá informar no :PARAM='-' quando quiseres que o firebird não considere a segunda condição.
Ao invés de:
WHERE (:PARAM IS NULL) OR (CAMPO=:PARAM)
Ponha:
WHERE (:PARAM = '-') OR (CAMPO=:PARAM)
Creio que assim dará certo.
CARLOS HENRIQUE MEIRELES
SUPORTE SINAPSE INFORMÁTICA
----- Original Message -----
From: Fabrício F. Kammer
To: FireBase
Sent: Tuesday, July 18, 2006 3:08 PM
Subject: Re: [firebase-br] Parâmetros nulos
Boa tarde Kléber,
O problema não é a ordem dos parâmetros, mas sim que o FB não permite a
comparação:
:PARAM IS NULL
[]s
Fabrício
Kléber Caneva escreveu:
> Amigo, acredito que como você está usando o OR se você inverter a condição
> ele irá funcionar...
>
> WHERE (:PARAM IS NULL) OR (CAMPO=:PARAM)
>
> Isso se justifica, pois o interpretador ao considerar a 1º condição como
> verdadeira, ele não irá validar a 2º, pois o Where já satisfaz a condição...
>
> []´s
>
> Kléber Caneva
>
> ----- Original Message -----
> From: ""Fabrício F. Kammer"" <ffkammer em conchalnet.com.br>
> To: <lista em firebase.com.br>
> Sent: Tuesday, July 18, 2006 9:38 AM
> Subject: [firebase-br] Parâmetros nulos
>
>
> Salve Galera!
>
> Alguém sabe alguma forma eficiente para testar se um parâmetro é nulo?
> Tenho muitas consultas com parâmetros opcionais e preciso que o select
> traga todos os registros caso o parâmetro não sejam informados.
>
> Em Oracle isso é o possível:
>
> WHERE CAMPO=:PARAM OR :PARAM IS NULL
>
> Já no FB não é possível esta solução. Testei o seguinte:
>
> WHERE CAMPO=:PARAM OR 0=:PARAM
>
> Porém dessa forma eu terei que passar um 0 (zero) na momento da execução
> da consulta, caso isso seja esquecido a consulta não retornará nenhum
> registro.
>
> []s
>
--
Fabrício F. Kammer
19 3866-1927
ConchalNet
Conchal/SP
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Mais detalhes sobre a lista de discussão lista