[firebase-br] Fw: RES: PROCEDURE

Eduardo Jedliczka (TeamFB) jedyfb em gmail.com
Ter Set 26 15:08:44 -03 2006


Há bons exemplos incluído no instalador do FB 2.0 (tanto no release notes, 
quanto no what is new), e tudo está na pasta "C:\Arquivos de 
programas\Firebird\Firebird_2_0\doc" (para uma instalação em windows)

======================
Eduardo Jedliczka
Membro do TeamFB - FireBase
Apucarana - PR
======================
"Posso não concordar com nada do que dizes.
Mas defenderei até a morte o seu direito de dizê-lo"
(Voltaire 1694-1778)
----- Original Message ----- 
From: "moura" <silasmoura em polmil.sp.gov.br>
To: <jedyfb em gmail.com>
Sent: Tuesday, September 26, 2006 1:41 PM
Subject: Re: [firebase-br] RES: PROCEDURE


> Eduardo.
>
> Desculpe a Digressão, mas vc poderia dar uma breve explanada
> em como utilizar (select from select)
>
> Desde já agradeço.
>
> Moura.
>
> ----- Original Message ----- 
> From: "Eduardo Jedliczka (TeamFB)" <jedyfb em gmail.com>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Tuesday, September 26, 2006 8:38 AM
> Subject: Re: [firebase-br] RES: PROCEDURE
>
>
>> Também não sou fã do uso "exagerado" de SP, pois o custo de manutenção da
>> base de dados cresce drasticamente, isto no caso das alterações de 
>> estrutura
>> que cedo ou tarde somos forçados a realizar, por culpa do crescimento
>> natural dos sistemas, ou das inúmeras alterações para atender a tão 
>> confusa
>> e controversa legislação (principalmente tributária e comercial) 
>> brasileira.
>>
>> Para mim, SP é para agilizar cálculos e operações complexas. Tipo montar 
>> um
>> saldo diário (descrição, débito, crédito e saldo), buscar furos em 
>> códigos
>> (como vimos recentemente na lista), totalizar as bases de impostos onde
>> várias tabelas são consultadas, Sistemas de vendas que trabalham com 
>> reserva
>> de estoque (a operação precisa ser rápida, então dá para colocar a 
>> chamada
>> como auto-commit). Mas criar SP simplesmente para trazer dados de um 
>> único
>> select, sem qualquer processamento só para ter uma "view" com parâmetros,
>> acho completamente desnecessáiro.
>>
>> No FB 1.X já havia muitos recursos que tornavam este excesso de SPs pouco
>> necessárias. No FB 2, graças aos recursos de nested select (select from
>> select) e execute block, acaba sendo completamente desnecessário manter
>> muitas SPs no banco.
>>
>> O ganho de performance em termos de compilação da SP é o mesmo que deixar
>> uma query preparada e usar várias vezes, ou seja, do ponto de vista 
>> prático
>> é muito pequeno (mas ajuda).
>>
>> ======================
>> Eduardo Jedliczka
>> Membro do TeamFB - FireBase
>> Apucarana - PR
>> ======================
>> "Posso não concordar com nada do que dizes.
>> Mas defenderei até a morte o seu direito de dizê-lo"
>> (Voltaire 1694-1778)
>> ----- Original Message ----- 
>> From: "Fuzari" <fuzari em task.com.br>
>> To: <renan em safetech.inf.br>; "FireBase" <lista em firebase.com.br>
>> Sent: Tuesday, September 26, 2006 8:10 AM
>> Subject: Re: [firebase-br] RES: PROCEDURE
>>
>>
>> Olá a todos,
>>
>> Concordo com a opiniao do colega Renan e outros q se utilizam somente de
>> selects (também é o meu caso).
>>
>> A vantagem em se utilizar procedures e views, tecnicamente, trata-se da
>> verificação de sintáxe (se o comando está escrito da forma correta) e de
>> semântica ( se a ordem dos comandos está correta) dos comandos bem como a
>> compilação antes da execução do script.
>>
>> Quando se aplica um select no componente, ao ativá-lo, o SGDB primeiro 
>> faz a
>> verificação da sintáxe, em seguida da semântica, compila o script e 
>> executa.
>>
>> Com as procedures e views, o SGDB ja efetuou as três primeiras etapas
>> (sintáxe, semântica e compilação) e já executa o script. Depedendo do
>> tamanho do banco é uma excelente alternativa.
>>
>> Abraços a todos
>>
>> Fuzari.
>>
>>
>>
>> ----- Original Message ----- 
>> From: "Renan de Oliveira" <renan em safetech.inf.br>
>> To: "FireBase" <lista em firebase.com.br>
>> Sent: Tuesday, September 26, 2006 7:18 AM
>> Subject: Re: [firebase-br] RES: PROCEDURE
>>
>>
>> Olha, eu tambem tenho esse mesmo problema... trabalho muito tempo com
>> oracle, mas tambem uso firebird, e tenho enorme dificuldade em 
>> compreender
>> esse uso elevado de procedures do pessoal no firebird. Onde na grande
>> maioria dos casos, um simples select, insert, update ou delete resolveria
>> sem problemas.
>>
>>
>> Renan de Oliveira
>> Safetech Informática
>> (51) 3529-3870
>> ----- Original Message ----- 
>> From: "Carlos Wilson" <cwfsa em yahoo.com.br>
>> To: "'FireBase'" <lista em firebase.com.br>
>> Sent: Monday, September 25, 2006 9:33 PM
>> Subject: [firebase-br] RES: PROCEDURE
>>
>>
>> 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
>>
>>
>>
>> ______________________________________________
>> 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
>>
>>
>> ______________________________________________
>> 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