[firebase-br] problema gravissimo com procedure + trigger - HELP
Murilo >> CPR Sistemas
murilo em cprinformatica.com.br
Qui Jan 3 12:25:36 -03 2008
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
>>
>>
>>
>
Mais detalhes sobre a lista de discussão lista