Re: [firebase-br] Parâmetros nulos

Fabiano Arndt fabianoallex em gmail.com
Qua Jul 19 17:57:19 -03 2006


Precisei disso tbm, em Oracle é facinho, normalmente nossos select de
relatórios e consultas tem esse formato no Oracle:

SELECT
  [CAMPOS]
FROM
  [TABLEAS]
WHERE
  (:PARAM IS NULL
    OR
     CAMPO = :PARAM)
  AND
  (:PARAM2 IS NULL
    OR
     CAMPO = :PARAM2)


no firebird tive que criar 2 parametros para cada opção, ficou mais ou
menos assim

SELECT
  [CAMPOS]
FROM
  [TABLEAS]
WHERE
  (:POR_PARAM = -1
    OR
     CAMPO = :PARAM)
  AND
  (:POR_PARAM_2 = -1
    OR
     CAMPO = :PARAM2)

aí se o usuário deseja pelo primeiro parametro, passo 0 para POR_PARAM
e o valor do parametro se ele deseja não filtrar pelo parametro, passo
-1 para POR_PARAM

espero que nao tenha ficado confusso


flw,
Fabiano.


Em 18/07/06, "Fabrício F. Kammer"<ffkammer em conchalnet.com.br> escreveu:
> 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
> 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
>




Mais detalhes sobre a lista de discussão lista