[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