[firebase-br] Ref. Execução Procedure
Omar Marques Haddad
omarhaddadm em gmail.com
Qui Out 14 12:28:37 -03 2010
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
--
Att.
Omar Marques Haddad
Analista de Sistemas Sênior
Mais detalhes sobre a lista de discussão lista