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

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


Opa, Alexandre. obrigado pela dica.

Vou dar uma "googlada"

abraço

Omar

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

>  Voce pode tentar usar as funções SET_CONTEXT e GET_CONTEXT...
>
> não lembro direito como usá-las, mas veja se serve ao seu proposito.
>
> []'s
> Alexandre Sousa
>
> Em 14/10/2010 13:13, Omar Marques Haddad escreveu:
>
>  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
>>>
>>>
>>
>>
>
> ______________________________________________
> 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