[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