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

Murilo >> CPR Sistemas murilo em cprinformatica.com.br
Qui Jan 3 12:36:59 -03 2008


Já achei o problema, era BIOS mesmo, em um outro local (não sei como ele é 
chamado ainda nem o por que, isso estou vendo) chama a procedure 
PROC_ATUALIZAITEMESTOQUE, enviando Null no campo. Foi um susto e tanto, mas 
menos mal ser problema nosso.

Vlw   ;D


Murilo >> CPR Sistemas escreveu:
> Foi feito no 1.5, mas foi feito o backup (no 1.5) / restore (no 2.0).
> 
> Chico escreveu:
>> Esse seu banco foi criado nessa versão do FB?
>> Caso ele tenha sido criado em uma versão anterior, você fez 
>> backup/restore para esta versão mais atual ?
>>
>> Murilo >> CPR Sistemas escreveu:
>>> Ahh sim esquecei, usamos FB 2.0.3
>>>
>>> Murilo >> CPR Sistemas escreveu:
>>>   
>>>> 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
>>>>
>>>> :(
>>>>
>>>>
>>>> ______________________________________________
>>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>>> Para editar sua configuração na lista, use o endereço http://mail..firebase.com.br/mailman/listinfo/lista_firebase.com.br
>>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>>
>>>>     
>>> ______________________________________________
>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>> Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>
>>>
>>>   
> 
> 
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> 





Mais detalhes sobre a lista de discussão lista