[firebase-br] RES: PROCEDURE
Claudio CatSJ
claudio.sj em sercon.com.br
Ter Set 26 09:48:26 -03 2006
Multiplataformas nao é o caso, isso porque cada banco tem uma maneira
diferente de se fazer Stored Procedures
Tive muitos problemas em reescrever stored procedures quando migrei pra
Firebird, eu utilizava SQLServer...
Nao foi facil reescrever tudo novamente..
É por isso que reduzi o maximo possivel de Stored Procedures nos meus
projetos, isso tambem ajuda na atualizacao da versao do software, nao
precisando mexer no banco, isso em se tratando de novas consultas e
relatorios solicitados por clientes.
----- Original Message -----
From: "Cristiano Rebonatto" <crebonatto em upf.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Tuesday, September 26, 2006 8:30 AM
Subject: Re: [firebase-br] RES: PROCEDURE
Alguns motivos básicos :
Para ter aplicações multiplataformas
Separar a regra de negócio
Facilitar manutenção
Grande aumento de performance
Muitos soluções só são possíveis através de procedures
Controlar acesso
Carlos Wilson escreveu:
> Eu gostaria de entender porque vocês usam tantas procedures, se quase tudo
> pode ser feito por select. Tenho um sistema de Vendas e Crediário e tenho
> apenas 2 procedures, e no meu sistema eu tenho relatórios estatísticos,
> gráficos e outros. Digo isso porque um dos primeiros artigos que li sobre
> firebird foi para não abusar das procedures, então se houver alguma
vantagem
> real em usar procedures eu gostaria de saber.
>
> Grato.
>
> Carlos Wilson.
>
> -----Mensagem original-----
> De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br]
Em
> nome de Jeter Rabelo Ferreira
> Enviada em: quarta-feira, 20 de setembro de 2006 13:53
> Para: FireBase
> Assunto: Re: [firebase-br] PROCEDURE
>
> Olá Caçula, faz o seguinte:
>
> FOR SELECT DISTINCT P.COD_PRODUTO, MAX(P.QUANTIDADE)
> FROM T_PROD_PEDIDO P
> WHERE P.DT_EMISSAO BETWEEN :DAT1 AND :DAT2
> GROUP BY P.COD_PRODUTO
> INTO :CODIGO, QUANT
> DO
> begin
> SELECT VR_UNIT FROM T_PRODUTO T
> WHERE T.COD_PRODUTO=:CODIGO
> INTO VALOR;
> suspend;
> end;
>
> Obs: Não testei.
>
> []'s
> Jéter Rabelo Ferreira
>
>
>
>
> Em 20/09/06, Caçula <info em cacula.ind.br> escreveu:
>
>> Bom dia lista.
>>
>> Estou desenvolvendo uma procedure, para selecionar os produtos mais
>> vendidos. Estou fazendo uma seleção da tabela de produtos do pedido, mas
>> também preciso do valor unitário que consta no cadastro do produto, mas
>> não estou conseguindo. Veja como ficou
>>
>> CREATE PROCEDURE PRODUTOS (
>> DAT1 DATE,
>> DAT2 DATE)
>> RETURNS (
>> CODIGO INTEGER,
>> QUANT NUMERIC(15,3),
>> VALOR NUMERIC(15,3))
>> AS
>> begin
>> /* Procedure Text */
>> FOR SELECT P.COD_PRODUTO, D.VR_UNIT, MAX(P.QUANTIDADE) FROM
>> T_PROD_PEDIDO P, T_PRODUTO D
>> WHERE P.DT_EMISSAO BETWEEN :DAT1 AND :DAT2
>> GROUP BY P.COD_PRODUTO
>> ORDER BY MAX(P.QUANTIDADE) DESC INTO :CODIGO, :VALOR, :QUANT
>> DO
>> suspend;
>> end
>>
>> Se deixar assim, dá erro, e se colocar o D.VR_UNIT no GROUP BY, ele me
>> retorna informação errada. Como que faço pra agrupar por código de
>> produto, e conseguir pegar o VR_UNIT da tabela de produto.
>>
>> Obrigado
>>
>> Alexandre Gonçalves
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.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
>>
>>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.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
>
>
>
> _______________________________________________________
> Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu celular.
Registre seu aparelho agora!
> http://br.mobile.yahoo.com/mailalertas/
>
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.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
>
>
--
+-----------------------------------------------------------+
Cristiano Rebonatto
Setor de Análise e Desenvolvimento
Divisão de Tecnologia da Informação
Universidade de Passo Fundo
Passo Fundo - RS
+-----------------------------------------------------------+
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.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