Trigger Com tres tabelas
tenho tres tabelas
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 :
[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
Tabela materia_Prima
Descricao
Saldo_Peso
Tabela Produto
CodProduto
Descricao
Tabela Producao
CodProduto
Peso_Gasto
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
a idiea é achar na tabela produtos a descrição do Produto usado na Tabela
Produção... De pose da Descrição , fazer um insert na Tabela Materi_Prima e atualiza-la..
Marco Salles
Curtidas 0
Respostas
Marco Salles
27/07/2006
eu não sei se fui claro , mas o que eu quero fazer é
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é...
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
Citação:
Tabela materia_Prima
Descricao
Saldo_Peso
Citação:
Tabela Produto
CodProduto
Descricao
Citação:
Tabela Producao
CodProduto
Peso_Gasto
Acho que deu né...
GOSTEI 0
Renato.pavan
27/07/2006
[quote:b16cb39a28=´Marco Salles´]tenho tres tabelas
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 :
[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
Espero ter ajudado
Renato
Tabela materia_Prima
Descricao
Saldo_Peso
Tabela Produto
CodProduto
Descricao
Tabela Producao
CodProduto
Peso_Gasto
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
a idiea é achar na tabela produtos a descrição do Produto usado na Tabela
Produção... De pose da Descrição , fazer um insert na Tabela Materi_Prima e atualiza-la..
[/quote:b16cb39a28]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
Marco Salles
27/07/2006
Espero ter ajudado
Renato
obrigado renato pela sua gentileza. Coloquei os dois pontos e agora da um erro
count of column list and variable list do not match.
Dynamic SQL Error.
SQL error code = -313.
count of column list and variable list do not match.
Algue sabe o que signigfica
GOSTEI 0
Renato.pavan
27/07/2006
[quote:3d193903a4=´Marco Salles´]
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
Espero ter ajudado
Renato
obrigado renato pela sua gentileza. Coloquei os dois pontos e agora da um erro
count of column list and variable list do not match.
Dynamic SQL Error.
SQL error code = -313.
count of column list and variable list do not match.
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
Marco Salles
27/07/2006
Belza amigo .. Compilar compilou.. Na verdade não é nen compilar e sim Commitar.. Commitar Commitou... Porem , não sei o que esta ocorrendo que a logica não esta funcionando
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:
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
Renato.pavan
27/07/2006
[quote:7553ebec0c=´Marco Salles´]Belza amigo .. Compilar compilou.. Na verdade não é nen compilar e sim Commitar.. Commitar Commitou... Porem , não sei o que esta ocorrendo que a logica não esta funcionando
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
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
Marco Salles
27/07/2006
la vai :
/
/
******************************************************************************/
/**** Generated by IBExpert 27/07/2006 16:29:50 ****/
/******************************************************************************/
SET SQL DIALECT 3;
SET NAMES WIN1252;
SET TERM ^ ;
CREATE TRIGGER HISTORICO_FABRICACAO_INSERT FOR HISTORICO_FABRICACAO
ACTIVE AFTER INSERT POSITION 0
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*/
/* Trigger text */
end
^
SET TERM ; ^
GOSTEI 0
Renato.pavan
27/07/2006
Aparentemente esta tudo certo, não consegui detectar nenhuma falha, o estranho é que o testes q eu fiz com os campos q vc citou funcionou perfeitamente e esta parecido com o seu codigo, qdo digito algo ta tabela produção ele abaixa o saldo da tabela materia prima.
Segue abaixo a ddl completa do exemplo q eu fiz pra analize.
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
Marco Salles
27/07/2006
Renato , obrigado pela força. Mas aqui não estou conseguindo :cry: :cry:
[b:09586b5321]e opior que nen no IbExpert , < inserindo pelo IbExpert >, não esta dando certo....... [/b:09586b5321]
Aparentemente esta tudo certo, não consegui detectar nenhuma falha, o estranho é que o testes q eu fiz com os campos q vc citou funcionou perfeitamente e esta parecido com o seu codigo, qdo digito algo ta tabela produção ele abaixa o saldo da tabela materia prima.
Segue abaixo a ddl completa do exemplo q eu fiz pra analize.
[b:09586b5321]e opior que nen no IbExpert , < inserindo pelo IbExpert >, não esta dando certo....... [/b:09586b5321]
GOSTEI 0
Marco Salles
27/07/2006
Renato , obrigado pela força. Mas aqui não estou conseguindo
Citação:
Aparentemente esta tudo certo, não consegui detectar nenhuma falha, o estranho é que o testes q eu fiz com os campos q vc citou funcionou perfeitamente e esta parecido com o seu codigo, qdo digito algo ta tabela produção ele abaixa o saldo da tabela materia prima.
Segue abaixo a ddl completa do exemplo q eu fiz pra analize.
e opior que nen no IbExpert , < inserindo pelo IbExpert >, não esta dando certo.......
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
Marco Salles
27/07/2006
Olhando sua DLL não entendi como voce consegui compila
:?: :?: :?: :?:
select P.descricao from produto p
não deveria ser assim
select P.descricao from p
:?: :?: :?: :?:
GOSTEI 0
Renato.pavan
27/07/2006
[quote:c22afb6b88=´Marco Salles´]Olhando sua DLL não entendi como voce consegui compila
:?: :?: :?: :?:[/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.
select P.descricao from produto p
não deveria ser assim
select P.descricao from p
:?: :?: :?: :?:[/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
Marco Salles
27/07/2006
[b:a19d7b5e43]renato , bla cara.[/b:a19d7b5e43]
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
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