Criar Trigger Firebird
Galera estou tentando criar uma trigger para atualizar o campo estoque de um produto antes da inserção na tabela itens_lista, meu sql tah desta forma:
create trigger estoque for itens_lista
active
before insert
position 0 as
begin
update produtos set pro_qtde_est=(pro_qtde_est-new.ite_qtde)
where pro_cod=new.pro_cod
end
bom quando for inserido um novo registro na tabela itens_lista, ele vai pegar o campo que contem a quantidade vendida, que é representada pelo campo ite_qtde, e subtrair do campo quantidade da tabela produto que esta representada pelo campo pro_qtde_est.
bom na hora de criar aparece o seguinte erro.
ISC ERROR CODE:335544569
ISC ERROR MESSAGE:
Dynamic SQL Error
SQL error code = -104
Token unknown - line 8, column 1
end
pelo o que eu entendi ele não reconhece o end da trigger, tem algo errado no corpo da minha trigger? Valeu!!
create trigger estoque for itens_lista
active
before insert
position 0 as
begin
update produtos set pro_qtde_est=(pro_qtde_est-new.ite_qtde)
where pro_cod=new.pro_cod
end
bom quando for inserido um novo registro na tabela itens_lista, ele vai pegar o campo que contem a quantidade vendida, que é representada pelo campo ite_qtde, e subtrair do campo quantidade da tabela produto que esta representada pelo campo pro_qtde_est.
bom na hora de criar aparece o seguinte erro.
ISC ERROR CODE:335544569
ISC ERROR MESSAGE:
Dynamic SQL Error
SQL error code = -104
Token unknown - line 8, column 1
end
pelo o que eu entendi ele não reconhece o end da trigger, tem algo errado no corpo da minha trigger? Valeu!!
Shakall
Curtidas 0
Respostas
T3r3son
26/08/2007
Vi sua mensagem de passagem, então posso estar enganado, mas vc verificou que tem um ; no final da instrução SQL?
GOSTEI 0
Emerson Nascimento
26/08/2007
acho que é isso mesmo. falta o ; ao final do comando sql
GOSTEI 0
Shakall
26/08/2007
create trigger estoque for itens_lista
active
before insert
position 0 as
begin
update produtos set pro_qtde_est=(pro_qtde_est-new.ite_qtde)
where pro_cod=new.pro_cod
end;
mesmo erro galera, adicionei o ; no final e não resolveu!
active
before insert
position 0 as
begin
update produtos set pro_qtde_est=(pro_qtde_est-new.ite_qtde)
where pro_cod=new.pro_cod
end;
mesmo erro galera, adicionei o ; no final e não resolveu!
GOSTEI 0
Emerson Nascimento
26/08/2007
colega, o ; é ao final da instrução sql
create trigger estoque for itens_lista
active
before insert
position 0 as
begin
update produtos set pro_qtde_est=(pro_qtde_est-new.ite_qtde)
where pro_cod=new.pro_cod; <-- aqui ó...
end
create trigger estoque for itens_lista
active
before insert
position 0 as
begin
update produtos set pro_qtde_est=(pro_qtde_est-new.ite_qtde)
where pro_cod=new.pro_cod; <-- aqui ó...
end
GOSTEI 0
Shakall
26/08/2007
sim jah tentei tb e não resolvou, mas descobri o problema eu tinha que ter inserido antes e depois do create o SET TERM ^ ; agora esta fucnionando pergeitamente valeu!!!
GOSTEI 0