Fórum Trigger Com tres tabelas #56652
27/07/2006
0
Guando estou fazendo uma inserção na Tabela Produção , o Que eu Gastei com O peso deve dar Baixa Na Tabela MatPrima
Mas não estou conseguindo Compilar Uma StoreProcedure Para Isto
estou tentando assim :
AS DECLARE VARIABLE DesProduto varchar(50); begin select descricao_produto,codigo_produto from produtos where produtos.codigo_produto = NEW.codigo_produto INTO :Desproduto; update materia_prima set materia_prima.saldo=materia_prima.saldo - New.peso_final, materia_prima.data=new.data where materia_prima.descricao = Desproduto; end
[b:d21c79d015]Não compila ... Da erro na ultima linha[/b:d21c79d015]
ja tentei também
[b:d21c79d015]materia_prima.Descricao = Produto.Descricao[/b:d21c79d015]
Estou fazendo isto no IbExpert e uso Firebird 1.5.3
Marco Salles
Curtir tópico
+ 0Posts
27/07/2006
Marco Salles
quando salvar um novo registro na Tabela Produção , o Que eu ´Gastei´ com O peso devo dar Baixa No Saldo_Peso na Tabela MatPrima
tenho tres tabelas
Acho que deu né...
Gostei + 0
27/07/2006
Renato.pavan
Guando estou fazendo uma inserção na Tabela Produção , o Que eu Gastei com O peso deve dar Baixa Na Tabela MatPrima
Mas não estou conseguindo Compilar Uma StoreProcedure Para Isto
estou tentando assim :
AS DECLARE VARIABLE DesProduto varchar(50); begin select descricao_produto,codigo_produto from produtos where produtos.codigo_produto = NEW.codigo_produto INTO :Desproduto; update materia_prima set materia_prima.saldo=materia_prima.saldo - New.peso_final, materia_prima.data=new.data where materia_prima.descricao = Desproduto; end
[b:b16cb39a28]Não compila ... Da erro na ultima linha[/b:b16cb39a28]
ja tentei também
[b:b16cb39a28]materia_prima.Descricao = Produto.Descricao[/b:b16cb39a28]
Estou fazendo isto no IbExpert e uso Firebird 1.5.3
Colela, simulei suas tabelas e colei sua trigger a unica coisa que faltou foi os ´: dois pontos´ da variavel abaixo codigo correto
AS DECLARE VARIABLE DesProduto varchar(50); begin select descricao_produto,codigo_produto from produtos where produtos.codigo_produto = NEW.codigo_produto INTO :Desproduto; update materia_prima set materia_prima.saldo=materia_prima.saldo - New.peso_final, materia_prima.data=new.data where materia_prima.descricao = :Desproduto; /* faltou os : no Desproduto*/ end
Espero ter ajudado
Renato
Gostei + 0
27/07/2006
Marco Salles
obrigado renato pela sua gentileza. Coloquei os dois pontos e agora da um erro
Algue sabe o que signigfica
Gostei + 0
27/07/2006
Renato.pavan
obrigado renato pela sua gentileza. Coloquei os dois pontos e agora da um erro
Algue sabe o que signigfica[/quote:3d193903a4]
esqueci de mencionar, no primeiro select deixe apenas a descricao_produto q vai ser a saida pra variavel Desproduto
AS DECLARE VARIABLE DesProduto varchar(50); begin select descricao_produto /* tire essa parte - ,codigo_produto*/ from produtos where produtos.codigo_produto = NEW.codigo_produto INTO :Desproduto; update materia_prima set materia_prima.saldo=materia_prima.saldo - New.peso_final, materia_prima.data=new.data where materia_prima.descricao = :Desproduto; /* faltou os : no Desproduto*/ end
Gostei + 0
27/07/2006
Marco Salles
Isto é , não esta dando baixa na Tabela MatPrima :cry: :cry: :cry:
Sera que este conjunto de instruçoes estão certos ????
Do desde cedo com isto , ja estou com os cabelos em pé :cry: :cry:
Gostei + 0
27/07/2006
Renato.pavan
Isto é , não esta dando baixa na Tabela MatPrima :cry: :cry: :cry:
Sera que este conjunto de instruçoes estão certos ????
Do desde cedo com isto , ja estou com os cabelos em pé :cry: :cry:[/quote:7553ebec0c]
Amigao posta ai a ddl completa da sua trigger pra eu ver, desta forma é mais facil detectar um possível erro.
Renato
Gostei + 0
27/07/2006
Marco Salles
/
Gostei + 0
27/07/2006
Renato.pavan
Segue abaixo a ddl completa do exemplo q eu fiz pra analize.
/******************************************************************************/ /**** Generated by IBExpert 28/07/06 16:43:19 ****/ /******************************************************************************/ SET SQL DIALECT 3; SET NAMES ISO8859_1; SET TERM ^ ; CREATE TRIGGER PRODUCAO_AI0 FOR PRODUCAO ACTIVE AFTER INSERT POSITION 0 AS DECLARE VARIABLE DesProduto varchar(50); begin select P.descricao from produto p where p.cod_produto = NEW.cod_produto INTO :Desproduto; update materia_prima set materia_prima.saldo_peso=materia_prima.saldo_peso - New.peso_gasto where materia_prima.descricao = :desproduto; end ^ SET TERM ; ^
Gostei + 0
27/07/2006
Marco Salles
[b:09586b5321]e opior que nen no IbExpert , < inserindo pelo IbExpert >, não esta dando certo....... [/b:09586b5321]
Gostei + 0
27/07/2006
Marco Salles
o Pior que não tem nenhum jeito de testar esta Store procedure , para ver aonde esta o erro :cry: :cry: :cry: Ou tem ???
Gostei + 0
27/07/2006
Marco Salles
:?: :?: :?: :?:
Gostei + 0
28/07/2006
Renato.pavan
:?: :?: :?: :?:[/quote:c22afb6b88]
Não P é o apelido da tabela produto repare la from Produto P, ai ao invés de referenciar Produto.Descricao uso o apelido P.Descricao.
Faz o seguinte, cria um bd ai com as tabelas envolvidas e alguns dados, manda no meu e-mail, vou tentar montar a trigger nesse bd e te reenvio.
rpinformatica@terra.com.br ou msn renatopavan2002@hotmail.com
Renato.
Gostei + 0
28/07/2006
Marco Salles
Ontem a noite fu ipara casa , criei um banco com essas tres tabelas e funfa. Sem problema..
Aqui com tem outras tabelas envolvidas to com este pepino. Como estou no inicio do projeto , resolvi mudar tudo. Estou na estaca zero , e comecei do zero.
Sabe com é , se não seu é pq ainda não chegou a hora..
Muito obrigado pela disposição ,
Ps : to abrindo um tópico novo , se quiser participar sera um prazer
Muito obrigado
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)