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