Ir para conteúdo
  • Cadastre-se

dev botao

Problemas Com Hash...


  • Este tópico foi criado há 4079 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

possuo banco de dados firebird e possuo a seguinte rotina para fazer a verificação dos campos q foram alterados...   so q nao esta funcionando... o q esta faltando alguem pode me ajudar?

 

 

create or alter procedure PAF_HASH (

    PTABELA varchar(25),

    PCAMPO varchar(100),

    PCHPAF_ECF integer,

    PID integer,

    PSEQ integer,

    PHASH varchar(100),

    PCONSULTA char(1))

returns (

    RESULT char(1))

as

declare variable VHASH varchar(100);

declare variable VMODIFIFICADO char(1);

begin

  --  Procura o HASH se existir o registro

  RESULT    = 'S';

  SELECT H.HASH, H.MODIFICADO

    FROM TBL_PAF_HASH H

   WHERE (H.TABELA    = :PTABELA   )

     AND (H.CAMPO     = :PCAMPO    )

     AND (H.CHPAF_ECF = :PCHPAF_ECF)

     AND (H.ID        = :PID       )

     AND (H.SEQ       = :PSEQ      )

    INTO :VHASH, :VMODIFIFICADO;

    IF (VHASH IS NULL) THEN VHASH = '';

    IF (VHASH = '') THEN BEGIN  -- caso NÃO exista o registro, cria o registro

       IF (PCONSULTA = 'S') THEN BEGIN

          RESULT = 'N';

       END ELSE

           INSERT INTO TBL_PAF_HASH

                        (  TABELA,   CAMPO,   CHPAF_ECF,   ID,   SEQ,   HASH, MODIFICADO )

                VALUES (:PTABELA, :PCAMPO, :PCHPAF_ECF, :PID, :PSEQ, :PHASH, 'N');

    END ELSE                    -- caso SIM exista o registro

       IF (VMODIFIFICADO = 'S') THEN BEGIN     -- ja era Modificado so retorna como 'N'

          RESULT = 'N';

       END ELSE IF (VHASH <> PHASH) THEN BEGIN -- HASH sejão diferente e AINDA não tenha sido modoficado

           IF (PCONSULTA = 'S') THEN BEGIN

               EXECUTE PROCEDURE HASH_MODIFICADO( :PTABELA, :PCAMPO, :PCHPAF_ECF, :PID, :PSEQ );

               RESULT = 'N';

           END ELSE BEGIN

               UPDATE TBL_PAF_HASH

                  SET HASH = :PHASH

                WHERE (TABELA    = :PTABELA   )

                  AND (CAMPO     = :PCAMPO    )

                  AND (CHPAF_ECF = :PCHPAF_ECF)

                  AND (ID        = :PID       )

                  AND (SEQ       = :PSEQ      );

          END

       END

  SUSPEND;

end

post-5472-0-44165200-1363116940_thumb.jp

post-5472-0-44165200-1363116940_thumb.jp

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 4079 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...