[firebase-br] problema gravissimo com procedure + trigger - HELP

Murilo >> CPR Sistemas murilo em cprinformatica.com.br
Qui Jan 3 11:58:06 -03 2008


tenho uma procedure que faz o seguinte update:

update ITEMMOVIMENTO
set id_subnivel_localitem = :id_subnivel_localitem
where id_item = :id_item and
       id_empresa = 1;




Na tabela ITEMMOVIMENTO tenho a seguinte trigger

CREATE OR ALTER TRIGGER TR_ITEMMOVIMENTO FOR ITEMMOVIMENTO
ACTIVE AFTER UPDATE POSITION 0
as
begin
	if (new.id_subnivel_localitem is not null)
	     execute procedure PROC_ATUALIZAITEMESTOQUE(new.id_item, new.id_empresa, 
new.id_itemgrade, new.id_subnivel_localitem, (new.qt_movimento - 
old.qt_movimento), 0);
end



e na procedure PROC_ATUALIZAITEMESTOQUE eu tenho isso:

CREATE OR ALTER PROCEDURE PROC_ATUALIZAITEMESTOQUE(
     ID_ITEM INTEGER,
     ID_EMPRESA INTEGER,
     ID_GRADEITEM INTEGER,
     ID_LOCALITEM INTEGER,
     QT_FISICO DOUBLE PRECISION,
     QT_RESERVADO DOUBLE PRECISION)
AS
begin

	if (ID_LOCALITEM is null)
		exception EXP_TESTE 'Ahhhhhhhhhhhhhhhhh';
...
end



Acontece que o meu id_subnivel_localitem na tabela ITEMMOVIMENTO é not null, e 
eu tenho certeza que não existe nenhum registro com null, mas por algum motivo 
ele passa dentro do if "if (ID_LOCALITEM is null)" e dispara a exceção 
EXP_TESTE, o que pode estar acontecendo??? pois o só está indo nulo neste campo, 
e antes que falem, já recompilei todas as dependências, já restartei o banco, 
até a máquina já reiniciei no desespero. A posição do campo também já mudei e 
também já fiz verificação dos outros campos, ele é o único que está indo nulo 
(detalhe é que é o mais importante.... o único que nunca pode ser nulo).


Agluém faz idéia do que seja? Problema de BIOS, bug,................ Já não sei 
mais o que tentar, até mesmo já substituí a variável por um valor FIXO e 
adivinha o que aconteceu.... NULOOOOOOOOOOooooooooooooooooooooooo

:(





Mais detalhes sobre a lista de discussão lista