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