[firebase-br] RES: RES: ajuda com stored procedure

Hélio Oliveira hpensador em gmail.com
Ter Mar 13 14:48:54 -03 2012


Crie uma trigger after insert para TB_PRODUTO +/- assim:

create or alter procedure produto_ai0 for TB_PRODUTO
active after insert position 0
as
declare variable quantidade float;
begin
   /* Obtem a quanitdade a ser dada baixa no estoque */
   select R.qtd_composicao
   from TB_RELACIONAMENTO R
     join TB_COMPOSICAO C on (C.cod_composicao = R.cod_composicao)
   where R.cod_produto = new.cod_produto into :quantidade;
   /* Aqui você deverá fazer o processo de baixa do estoque */
end

Não sei se é exatamente isto que você precisa + creio que já sirva de 
base para você poder fazer seu processo.

> Tb_Produto ->  cod_produto, descricao, cod_grupo, qtd, preco
> Tb_Composicao ->  cod_composicao, qtd, , qtd_min, preco
> Tb_Ralaciomento ->  cod_relaciomento, cod_produto, cod_composicao, qtd_composicao
>
> Em 13 de março de 2012 13:46, Hélio Oliveira<hpensador em gmail.com>  escreveu:
>> Paulo qual a estrutura das 3 tabelas envolvidas na composição do seu
>> processo?
>>
>>
>>> o campo qtd_utilizada e a qtd que utiliza para se fazer o produto, ex
>>> para fazer um produto prod A utilizo 3 composições comp x 1,2 kg, comp
>>> y 0,39 kg e copm z 2,34 kg, para fazer um produto B utilizo 4
>>> composições comp x 3,2 kg, comp y 1,69 kg e copm z 1,34 kg, w 0,54 kg
>>>
>>> Em 13 de março de 2012 11:54, Hélio Oliveira<hpensador em gmail.com>
>>>   escreveu:
>>>>
>>>>
>>>> Quais os campos da tabela QTD_UTILIZADA( )?
>>>>
>>>> Como essas 3 tabelas se relacionam?
>>>>
>>>>
>>>>
>>>>> obrigado, mes estou con dificuldade em fazer o select, as tabelas
>>>>> estão dessa forma, são 3 tabelas a de produtos, Produdo_composição e a
>>>>> de relacionamento entre eles, quando dou saida em um um produto da
>>>>> baixa nele e na tabela composição,
>>>>> para dar baixa nos produtos deu certo, mas na de composição ñ
>>>>> consigui, se vc tiver um exemplo de um selecte para eu poder tirar
>>>>> como base ficarei agradecido.
>>>>>
>>>>> Em 13 de março de 2012 11:20, Hélio Oliveira<hpensador em gmail.com>
>>>>>   escreveu:
>>>>>>
>>>>>>
>>>>>> Bom dia Paulo!
>>>>>>
>>>>>> A melhor forma para você tratar isto é realmente atráves de uma trigger
>>>>>> after insert/update/delete.
>>>>>>
>>>>>> A idéia é a seguinte... você tem um produto que na sua composição
>>>>>> necessita
>>>>>> de outros produtos. Você terá uma tabela de relacionamento +/- assim:
>>>>>>
>>>>>> Tabela PRODUTO e PRODUTO_COMPOSICAO
>>>>>>
>>>>>> Na trigger você verifica o código do produto que esta sendo
>>>>>> inserido/alterado ou excluido e através de um for select...
>>>>>> você irá percorrer todos os produtos que o compoem e vai fazendo as
>>>>>> alterações no estoque dos respectivos.
>>>>>>
>>>>>>
>>>>>>> tenho uma tebela de protudos com cod, nome, preço e ad sub-produtos
>>>>>>> com cod, cod_prod (que faz a ligação), qtd_utilizada( que e a qtd
>>>>>>> necessaria para fazer 1 peça) gostaria de fazer esse gatilho no banco
>>>>>>> de dados.
>>>>>>>
>>>>>>> Em 13 de março de 2012 10:23, Zottis<bzottis em ig.com.br>        escreveu:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Usa duas tabelas
>>>>>>>> Uma para fazer a Ficha do Produto por produção
>>>>>>>> Exemplo: materiaPrimaProduto
>>>>>>>>
>>>>>>>> No SQL assim
>>>>>>>> Select Campo1, campo2, campo3,outrosCampos
>>>>>>>>   From materiaPrimaProduto  where materiaPrimaProdutoCampo =
>>>>>>>> ProdutoCampo
>>>>>>>>
>>>>>>>> No Delphi
>>>>>>>> While Not materiaPrimaProduto.eof do
>>>>>>>>   Begin
>>>>>>>>   With  Produto do
>>>>>>>>   Begin
>>>>>>>>    Close;
>>>>>>>>    Parambyname('COD_Produto').asinteger    :=
>>>>>>>> materiaPrimaProdutosCod_Produto.value;
>>>>>>>>    Prepare;
>>>>>>>>    Open;
>>>>>>>>   End;
>>>>>>>>
>>>>>>>>    ProdutosaldoEstoque.value  := ProdutosaldoEstoque.value -
>>>>>>>> TabelaQuantidade.value
>>>>>>>>   Produto.post;
>>>>>>>>   Tabela.next;
>>>>>>>>   End;
>>>>>>>>
>>>>>>>> Seria mais ou menos assim
>>>>>>>> Ou ainda fazer um gatilho Direto no Banco de Dados, para isso teria
>>>>>>>> que
>>>>>>>> passar mais detalhes
>>>>>>>> Cuidado ao faer a atualização não rodar duas vezes, pois ele
>>>>>>>> diminuiria
>>>>>>>> mais
>>>>>>>> do que o necessário
>>>>>>>>
>>>>>>>> Espero que ajude
>>>>>>>>
>>>>>>>> -----Mensagem original-----
>>>>>>>> De: lista-bounces em firebase.com.br
>>>>>>>> [mailto:lista-bounces em firebase.com.br]
>>>>>>>> Em
>>>>>>>> nome de Paulo Henrique Gleria Félix
>>>>>>>> Enviada em: terça-feira, 13 de março de 2012 09:20
>>>>>>>> Para: FireBase
>>>>>>>> Assunto: Re: [firebase-br] RES: ajuda com stored procedure
>>>>>>>>
>>>>>>>> Voce teria um exemplo para eu poder verificar por favor.
>>>>>>>>
>>>>>>>> Em 13 de março de 2012 07:56, Zottis<bzottis em ig.com.br>
>>>>>>>>   escreveu:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> É só fazer uma Busca noa tabela de matéria prima trazendo apenas o
>>>>>>>>> que
>>>>>>>>> interessa e fazer um  loop  ou um update via SQL Fazendo os cálculos
>>>>>>>>>
>>>>>>>>> Particularmente Faria do Primeiro Modo
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> -----Mensagem original-----
>>>>>>>>> De: lista-bounces em firebase.com.br
>>>>>>>>> [mailto:lista-bounces em firebase.com.br] Em nome de Paulo Henrique
>>>>>>>>> Gleria Félix Enviada em: segunda-feira, 12 de março de 2012 13:11
>>>>>>>>> Para: FireBase
>>>>>>>>> Assunto: Re: [firebase-br] ajuda com stored procedure
>>>>>>>>>
>>>>>>>>> Boa tarde, estou com uma duvida, tenho uma tabela de produtos
>>>>>>>>> manufaturados e outra com os sub-produtos (materia prima) que
>>>>>>>>> utilizo
>>>>>>>>> para fazer os produtos, minha duvida preciso dar baixa no produto e
>>>>>>>>> cosequentimente dar baixa na tabela sub-produtos, tipo 1xn
>>>>>>>>> 1 produtos pode utilizar varios sub-produtos, tenho uma tabela
>>>>>>>>> relacionamento q contem o codigo do produto e os sub-produtos que
>>>>>>>>> utiliza, gostaria de uma ajuda. Muito obrigado.
>>>>>>>>>
>>>>>>>>> ______________________________________________
>>>>>>>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>>>>>>>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>>>>>>>>> http://www.firebase.com.br/fb/artigo.php?id=1107
>>>>>>>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> ______________________________________________
>>>>>>>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>>>>>>>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>>>>>>>>> http://www.firebase.com.br/fb/artigo.php?id=1107
>>>>>>>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> ______________________________________________
>>>>>>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>>>>>>> Para
>>>>>>>> saber como gerenciar/excluir seu cadastro na lista, use:
>>>>>>>> http://www.firebase.com.br/fb/artigo.php?id=1107
>>>>>>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>>>>>>
>>>>>>>>
>>>>>>>> ______________________________________________
>>>>>>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>>>>>>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>>>>>>>> http://www.firebase.com.br/fb/artigo.php?id=1107
>>>>>>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ______________________________________________
>>>>>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>>>>>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>>>>>>> http://www.firebase.com.br/fb/artigo.php?id=1107
>>>>>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> ______________________________________________
>>>>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>>>>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>>>>>> http://www.firebase.com.br/fb/artigo.php?id=1107
>>>>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>>>
>>>>>
>>>>>
>>>>> ______________________________________________
>>>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>>>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>>>>> http://www.firebase.com.br/fb/artigo.php?id=1107
>>>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>>>
>>>>
>>>>
>>>>
>>>> ______________________________________________
>>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>>>> http://www.firebase.com.br/fb/artigo.php?id=1107
>>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>
>>>
>>> ______________________________________________
>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>>> http://www.firebase.com.br/fb/artigo.php?id=1107
>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>
>>
>>
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>> http://www.firebase.com.br/fb/artigo.php?id=1107
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>






Mais detalhes sobre a lista de discussão lista