Problema com domain na criação de triggers e também de stored procedures

Firebird

27/04/2012

Estou com problema na criação de triggers e stored procedures usando domains, principalmente os do tipo boolean que são emulados pelos domains, segue abaixo a minha trigger com o seguinte erro:


create trigger trg_itens_bi for itens before insert
as
declare variable v_operacao d_operacao_doc;
begin
select operacao
from documentos
where codigo = new.produto
into :v_operacao;

if (:v_operacao = E) then
update produtos
set saldo = saldo + new.quantidade
where codigo = new.produto;

if (:v_operacao = S) then
update produtos
set saldo = saldo - new.quantidade
where codigo = new.produto;

end


Erro:


Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 3, char 33.
d_operacao_doc.


O domain d_operacao_doc está como varchar(1) check (value in (E, S), está corretamente cadastrado no banco de dados.


Espero ajuda!
Lucas Oliveira

Lucas Oliveira

Curtidas 0

Respostas

Deivison Melo

Deivison Melo

27/04/2012

Bom dia,

Ao invés de usar o d_operacao_doc deverá usar o tipo do campo (varchar, integer e etc)...
GOSTEI 0
Lucas Oliveira

Lucas Oliveira

27/04/2012

Bom dia Deivison,

Ao substituir o domain por um char(1) ou varchar(1) ele dá certo, porém não funciona a função booleana dela. Como eu criei uma procedure com exception de usuários onde só o usuário que tem as permissões podem alterar, sempre dá erros, como se o usuário não tivesse permissões. Ou seja, a melhor forma seria utilizar os domains, porém no Ibexpert que utilizo parece que não aceita ou falta a mim colocar mais alguma coisa junto com o domain para que possa dar certo.

Espero ajuda.
GOSTEI 0
POSTAR