[firebase-br] Parâmetros nulos
Maycon Ferraça
maycon em nucleosistemas.com.br
Ter Jul 18 16:39:54 -03 2006
O problema não acontece ai pois o parâmetro esta com o seu tipo defino
da entrada da SP. Em um comando DSQL é que o erro vem a acontecer, pois
não definição do mesmo. No FB2 é possível contornar isso com um CAST.
[]
Maycon Ferraça
Kléber Caneva escreveu:
> Fiz um teste simples e funcionou:
>
> CREATE PROCEDURE SP_TESTE (
> KPRODUTO INTEGER)
> RETURNS (
> CODIGO CHAR(12),
> NOME VARCHAR(80))
> AS
> begin
> For
> Select CODIGO, NOME
> From PRODUTO
> Where (:KPRODUTO is null) or (KPRODUTO = :KPRODUTO)
> Into :CODIGO, :NOME
> do
> suspend;
> end^
>
> Se eu chamo
> Select * From SP_TESTE( 155 )
> ele me retorna um unico produto, se eu chamo
> Select * From SP_TESTE( null )
> ele me retorna todos os produto..
>
> []´s
>
> Kléber Caneva
>
>
>
>
> ----- Original Message -----
> From: ""Fabrício F. Kammer"" <ffkammer em conchalnet.com.br>
> To: "FireBase" <lista em firebase.com.br>
> 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
>>
>
Mais detalhes sobre a lista de discussão lista