[firebase-br] Passar parâmetro para View
Giovani Benedetti Penha
giovani em cooperval.com
Seg Jul 11 17:43:42 -03 2005
Tentei fugir da SP mas não teve jeito.... Valeu a dica Daniel, vou
implementar dessa forma, vai ser a saída mais otimizada para o meu caso.
[]s
Giovani
Daniel / Tecnobyte escreveu:
>>>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
>
>
>______________________________________________
>FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
>
>
Mais detalhes sobre a lista de discussão lista