Re: [firebase-br] Passar parâmetro para View

Daniel / Tecnobyte temp em tecnobyte.com.br
Seg Jul 11 17:35:01 -03 2005


> > Sim, isto está claro pra mim. Mas o que eu queria era colocar o
> > parâmetro dentro da view, na declaração da view. Acho que me expressei
mal.
> > Da forma como você colocou, a view teria que ser executada inteira,
> > depois filtrada novamente pelo select * from minha_view where campo =
> > :meu_parametro
> > Queria  colocar o parâmetro na declaração da  view,  assim evitaria  o
> > "retrabalho" de selecionar apenas o valor específico representado pelo
> > parâmetro.
> > Ex:
> > create view viewtemp (codigo, valor)
> > as
> > select codigo, valor
> > from tabela
> > where codigo = :parametro_codigo
> >
> > Daí no Delphi:
> > select * from viewtemp;
> > E setaria o parametro_codigo direto no componente. Ou seja, economizaria
> > tempo de execução, pois a view apenas retornaria apenas os valores com o
> > código que eu preciso.

O que você quer é feito com stored procedure e não com view. Veja um
exemplo:

CREATE PROCEDURE Proc_VendaComissao(Vendedor INTEGER, Data1 DATE, Data2
DATE)
RETURNS(Codigo INTEGER, Descricao VARCHAR(40), Qtd NUMERIC(18,3),
  Total NUMERIC(18,2), Comissao NUMERIC(18,2)) AS
BEGIN
  FOR
    SELECT Produto.Codigo, Produto.Descricao, SUM(ItemVenda.Qtd),
      SUM(ItemVenda.Total), SUM(ItemVenda.ValorComissao)
    FROM Venda, ItemVenda, Produto
    WHERE
      Venda.Vendedor = :Vendedor AND
      Venda.Data BETWEEN :Data1 AND :Data2 AND
      Venda.Concluida = 'S' AND
      ItemVenda.Venda = Venda.Codigo AND
      Produto.Codigo = ItemVenda.Produto
    GROUP BY Produto.Codigo, Produto.Descricao
    ORDER BY Produto.Descricao
    INTO :Codigo, :Descricao, :Qtd, :Total, :Comissao
  DO
    SUSPEND;
END^

Atenciosamente.

Daniel P. Guimarães
Tecnobyte Informática
www.tecnobyte.com.br





Mais detalhes sobre a lista de discussão lista