[firebase-br] Ajuda Stored Procedure

Adilson B. Cápua Jr. juniorcapua em gmail.com
Ter Jul 12 17:28:33 -03 2016


Eita...

Usando o exemplo do Sandro, consegui fazer a query ficar funcional e
pequena, do jeito que queria! :)
Isso mesmo que eu queria, algo prático e elegante!

Valeu a todos que ajudaram aí... Acredito que muitos vão ler essas
mensagens e aproveitar as excelentes dicas dos amigos!

Ganhou eu e ganhou a lista! Sucesso!

_____________________________________
  Adilson Bragança Cápua Jr.
  Linhares - ES                            Brasil

  Mail:* juniorcapua em me.com <juniorcapua em me.com>*
*          juniorcapua em gmail.com <juniorcapua em gmail.com>*
*          juniorcapua em yahoo.com.br <juniorcapua em yahoo.com.br>*
  Messenger:* juniorcapua em live.com <juniorcapua em live.com>*
  Skype:* dellas_capua*
  Blogger: http://dellasnoites.blogspot.com/
_____________________________________
"Save a tree! Send an e-mail!"

Em 12 de julho de 2016 13:30, Sandro Souza <escovadordebits em gmail.com>
escreveu:

> Bom dia/tarde/noite Adilson.
>
> Talvez o que você queira seja algo parecido com isso aqui:
>
> FOR SELECT CAMPOX, CAMPOY, CAMPOZ
>        FROM TABELA
>        WHERE ((:PARAMETRO_1 = 0) OR ((:PARAMETRO_1 <> 0) AND (CAMPOX =
> :PARAMETRO_1)) AND
>                     ((:PARAMETRO_2 = 0) OR ((:PARAMETRO_2 <> 0) AND
> (CAMPOY = :PARAMETRO_2)) AND
>                     ((:PARAMETRO_3 = 0) OR ((:PARAMETRO_3 <> 0) AND
> (CAMPOZ = :PARAMETRO_3))
>        INTO :VAR1, :VAR2. :VAR3 DO
>        BEGIN
>            ...
>        END
>
> Espero ter ajudado mais que atrapalhado. :D
>
> Em 12 de julho de 2016 00:35, Adilson B. Cápua Jr. <juniorcapua em gmail.com>
> escreveu:
>
>> PessoALL,
>>
>> Veja o seguinte trecho de uma SP:
>>
>>         FOR SELECT CAMPOX, CAMPOY, CAMPOZ
>>             FROM TABELA
>>             WHERE
>>                   CAMPOX = :PARAMETRO_1 AND
>>                   CAMPOY = :PARAMETRO_2 AND
>>                   CAMPOZ = :PARAMETRO_3
>>             INTO :VAR1, :VAR2. :VAR3 DO
>>             BEGIN
>>                        ...
>>             END
>>
>> Agora imagine que PARAMETRO_1, PARAMETRO_2 e PARAMETRO_3 é opcional, ou
>> seja,
>> se vier diferente de 0, significa que tenho que usá-lo, caso contrário
>> não!
>>
>> Como fazer isso de uma forma "elegante"?
>>
>> Hoje eu tenho que repetir várias vezes de acordo com o parâmetro. Tipo
>> assim:
>>
>> IF (PARAMETRO_1 = 0) THEN
>> BEGIN
>>   IF (PARAMETRO_2 = 0) THEN
>>    BEGIN
>>       IF (PARAMETRO_3 = 0) THEN
>>        BEGIN
>>            (((QUERY DESCARTANDO TODOS PARAMETROS)))
>>        END
>>
>>     IF (PARAMETRO_3 <> 0) THEN
>>        BEGIN
>>            (((QUERY USANDO SOMENTE PARAMETRO_3)))
>>        END
>>    END
>> END
>>
>> Minhas SP's estão ficando gigantescas! Se fosse dentro do meu programa,
>> era
>> mole. Eu ia montando a query de acordo com a consulta. Agora dentro de
>> Storeds Procedures que estou meio que perdido!
>>
>> Qualquer ajuda é bem vinda!
>>
>> Ah... Usando Firebird 2.5!
>>
>> Um abraço!
>>
>> _____________________________________
>>   Adilson Bragança Cápua Jr.
>>   Linhares - ES                            Brasil
>>
>>   Mail:* juniorcapua em me.com <juniorcapua em me.com>*
>> *          juniorcapua em gmail.com <juniorcapua em gmail.com>*
>> *          juniorcapua em yahoo.com.br <juniorcapua em yahoo.com.br>*
>>   Messenger:* juniorcapua em live.com <juniorcapua em live.com>*
>>   Skype:* dellas_capua*
>>   Blogger: http://dellasnoites.blogspot.com/
>> _____________________________________
>> "Save a tree! Send an e-mail!"
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>> http://www.firebase.com.br/fb/artigo.php?id=1107
>> Para consultar mensagens antigas:
>> http://www.firebase.com.br/pesquisa_lista.html
>>
>
>



Mais detalhes sobre a lista de discussão lista