[firebase-br] Parâmetros opcionais

Maycon Ferraça maycon em nucleosistemas.com.br
Seg Jul 17 08:42:25 -03 2006


No Firebird 1.5.3 (ou inferior) este comando não é possível. Com o 
Firebird 2.0, o comando é possível da seguinte maneira:

SELECT CAMPOS FROM TABLE WHERE TABLE.CAMPO = :PARAM OR CAST(:PARAM AS 
INTEGER) IS NULL

Onde o tipo de dados deverá ser do mesmo tipo da coluna (até funciona 
com um tipo diferente, mas é aconselhável usar o mesmo).

Caso você utilize Delphi, poderia substituir o "IS NULL" por "= 0". 
Ficando assim:

SELECT CAMPOS FROM TABLE WHERE TABLE.CAMPO = :PARAM OR :PARAM = 0

Já o Delphi converte automaticamente NULO para um valor padrão, não 
teria problema.

[]
Maycon Ferraça

ffkammer em conchalnet.com.br escreveu:
> Salve Galera!
> 
> Gostaria da opnião de vcs em como utilizar parâmetros opcionais em um
> instrução SQL no FB.
> 
> Estava acostumado a utilizar o seguinte no Oracle:
> 
> SELECT CAMPOS FROM TABLE WHERE TABLE.CAMPO = :PARAM OR :PARAM IS NULL
> 
> Mas isso não funciona no FB... Alguém tem um solução para esses casos?
> Prciso que o parâmetro esteja na instrução SQL, mas quem decidirá se vai
> utilizar ou não o parâmetro será o usuário, no momento em que acionar uma
> consulta através de meu sistema.
> 
> PS: Se alguém tiver alguma solução, nem que necessite de alguma UDF não
> tem problema... cheguei a pensar em utilizar uma UDF para validação de
> parâmetros, mas não tive tempo de testar ainda.
> 
> []s
> 
> Fabrício F. Kammer
> 
> ______________________________________________
> 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