[firebase-br] Ref. Execução Procedure

Omar Marques Haddad omarhaddadm em gmail.com
Qui Out 14 13:13:10 -03 2010


Pootz grila....(desculpem-me)

É isto. Esta função copiei de um banco em 1.5 que roda de boa.Agora, joguei
dentro do meu BD 2.1 e estou tentando rodar e dá o erro.

Será que tem algo semelhante que possa fazer no 2.1 usando exception para
dar um alerta ao usuário ?

Valewws. Matou a pau !

Obrigado

Em 14 de outubro de 2010 11:59, Alexandre Sousa
<dave.malkavian em gmail.com>escreveu:

>  Foi migrado recentemente para o firebird 2.1?
>
> Se não me engano foram adicionadas validações que impedem alterações nas
> tabelas de sistema.
>
> []'s
> Alexandre Sousa
> Em 14/10/2010 12:28, Omar Marques Haddad escreveu:
>
>  Fala brothers,
>>
>> Tenho uma Procedure de Mensagem "SHOW_MESSAGE", que uso para dar display
>> de
>> mensagens dentro de Triggers, etc.
>>
>> Segue:
>>
>>
>> SET TERM ^ ;
>>
>> create or alter procedure SHOW_MESSAGE (
>>     MENSAGEM varchar(78))
>> as
>> BEGIN
>>   UPDATE RDB$EXCEPTIONS
>>      SET RDB$MESSAGE = :MENSAGEM
>>    WHERE RDB$EXCEPTION_NAME = 'EXC_DINAMICO';
>>   EXCEPTION EXC_DINAMICO;
>> END^
>>
>> SET TERM ; ^
>>
>> GRANT EXECUTE ON PROCEDURE SHOW_MESSAGE TO TRIGGER
>> CAIXA_DIARIO_MOVIMENTACAO_BI0;
>> GRANT EXECUTE ON PROCEDURE SHOW_MESSAGE TO "PUBLIC";
>> GRANT EXECUTE ON PROCEDURE SHOW_MESSAGE TO SYSDBA;
>>
>>
>> Tenho uma trigger, no before insert de uma tabela de itens
>>
>> CREATE OR ALTER TRIGGER CAIXA_DIARIO_MOVIMENTACAO_BI0 FOR
>> CAIXA_DIARIO_MOVIMENTACAO
>> ACTIVE BEFORE INSERT POSITION 0
>> AS
>> DECLARE VARIABLE UltimoNItem Integer;
>> BEGIN
>>
>>   EXECUTE PROCEDURE SHOW_MESSAGE('teste');
>>
>>   -- Captura o último número de Item deste usuário e data, já acrescido de
>> 1.
>>   Select Max( Coalesce(CXM.CXMOVIM_NUMITEM,0) )
>>   from CAIXA_DIARIO_MOVIMENTACAO CXM
>>   Where (CXM.CXMOVIM_CODUSUARIO = NEW.CXMOVIM_CODUSUARIO) and
>>         (CXM.CXMOVIM_DATAMOVIMENTACAO = NEW.CXMOVIM_DATAMOVIMENTACAO)
>>   Into UltimoNItem;
>>
>>   NEW.CXMOVIM_NUMITEM = (UltimoNItem+1);
>>
>> END
>> ^
>>
>> SET TERM ; ^
>>
>>
>> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> Ao dar um insert normal na tabela para ver se a trigger calcula o valor do
>> campo NUMITEM corretamente, ao rodar a linha:
>>
>> EXECUTE PROCEDURE SHOW_MESSAGE('teste');
>>
>> Recebo a mensagem abaixo:
>>
>> password required.
>>
>>
>> Que senha é esta que ele está pedindo ? Uso FB 2.1. Estou logado como
>> SYSDBA
>> (padrão)
>>
>> Obrigado
>>
>>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



-- 
Att.
Omar Marques Haddad
Analista de Sistemas Sênior



Mais detalhes sobre a lista de discussão lista