[firebase-br] Ajuda Stored Procedure

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


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!"



Mais detalhes sobre a lista de discussão lista