[firebase-br] Select otimizado

Paulo Sérgo Feix paulinhofeix em gmail.com
Seg Jun 2 14:50:00 -03 2014


Só para entender você esta fazendo esta Procedure no Delphi ou FB ????


Em 2 de junho de 2014 12:35, Renan Rogowski Pozzo <renanrpozzo em gmail.com>
escreveu:

> Resolvi da seguinte forma:
> coloquei a consulta do where em uma variável e carrego ela de acordo com a
> condição:
>
> Ex.:
> -- SQL recebe a condição
>
> *  if (:tipo = 2) then*
> *    sql = ' (ped.id_cliente = '|| :id_cliente ||') ' ;*
> *  else*
> *    sql = ' (ped.id_cliente = '|| :id_cliente ||' or ped.id_indicador =
> '||:id_cliente||') ';*
>
> -- no select, que coloquei dentro de um execute statement, passo a variável
> no final
>
> *  for*
> *    execute statement('*
> *      select ....*
>
> *    where '||:sql')*
>
> Assim não crio repetições do select dentro da procedure.
>
> Abraço,
> Renan Rogowski Pozzo
>
> *"Entrega o teu caminho ao Senhor; confia nele, e ele o fará." Salmos 37:5*
>
>
> Em 2 de junho de 2014 11:25, Renan Rogowski Pozzo <renanrpozzo em gmail.com>
> escreveu:
>
> > Olá Rodrigo,
> > justamente a ideia é otimizar a consulta.
> > Queria em contrapartida reduzir código na procedure.
> >
> > Abraço,
> > Renan Rogowski Pozzo
> >
> > *"Entrega o teu caminho ao Senhor; confia nele, e ele o fará." Salmos
> 37:5*
> >
> >
> > Em 2 de junho de 2014 11:18, Paulo Sérgo Feix <paulinhofeix em gmail.com>
> > escreveu:
> >
> > Na procedure vc pode faz, eu tenho uma desta forma
> >>
> >>  WHERE
> >>     (
> >>      (UPPER(P.IDN_STATUS) = UPPER('A'))
> >>      AND
> >>      (
> >>       (
> >>        (:ISECCION > 0)
> >>        AND
> >>        (P.SECCION = :ISECCION)
> >>        )
> >>        OR
> >>        (:ISECCION IS NULL)
> >>        )
> >>      )
> >>
> >>
> >> Em 2 de junho de 2014 09:09, Renan Rogowski Pozzo <
> renanrpozzo em gmail.com>
> >> escreveu:
> >>
> >> > Bom dia,
> >> > gostaria de saber se é possível, ou se alguém tem alguma sugestão
> para a
> >> > situação abaixo:
> >> >
> >> > Em um select que tenho em uma procedure, a clausula where vai mudar
> >> > dependendo da condição.
> >> >
> >> > Ex.:
> >> > if (:tipo = 2) then
> >> > select
> >> > ... where (ped.id_cliente = :id_cliente)
> >> > else
> >> > select
> >> > ... where (ped.id_cliente = :id_cliente or ped.ind = :id_cliente)
> >> >
> >> > Irá mudar apenas a parte do where, o restante do select é igual.
> >> > Existe uma forma de eu aproveitar o mesmo select e mudar apenas a
> >> cláusula
> >> > where dependendo da minha condição?
> >> >
> >> > Abraço,
> >> > Renan Rogowski Pozzo
> >> >
> >> > *"Entrega o teu caminho ao Senhor; confia nele, e ele o fará." Salmos
> >> 37:5*
> >> > ______________________________________________
> >> > 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://firebase.com.br/pesquisa
> >> >
> >>
> >>
> >>
> >> --
> >> Paulinho Sérgio Feix
> >> ______________________________________________
> >> 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://firebase.com.br/pesquisa
> >>
> >
> >
> ______________________________________________
> 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://firebase.com.br/pesquisa
>



-- 
Paulinho Sérgio Feix



Mais detalhes sobre a lista de discussão lista