Ir para conteúdo
  • Cadastre-se

dev botao

CONTEXTO DE VARIAVEIS NO FIREBIRD


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

Recommended Posts

TENHO ESSAs PROCEDUREs

CREATE OR ALTER PROCEDURE SET_CONTEXTO (

ib_chave integer)

as

BEGIN

RDB$SET_CONTEXT('USER_SESSION', 'IB_KEY', :IB_CHAVE);

END

CREATE OR ALTER PROCEDURE VENDAS_CALC_HASH (

loj_codigo integer,

ven_numero integer)

returns (

ven_hash bigint)

as

begin

select hash( RDB$GET_CONTEXT('USER_SESSION', 'IB_KEY' )

||loj_codigo

||ven_coo

||ven_ccf

||ven_totalbruto

||ven_totaldesc

||ven_totalcanc

||ven_percdesc

||ven_totalliquido

||ven_quant

||ven_totalacresc

)

from

vendas ven

where ven.loj_codigo = :loj_codigo and

ven_numero = :ven_numero

into

:ven_hash ;

suspend;

end

e tambem essa trigger

CREATE OR ALTER PROCEDURE VENDAS_CALC_HASH (

loj_codigo integer,

ven_numero integer)

returns (

ven_hash bigint)

as

begin

select hash( RDB$GET_CONTEXT('USER_SESSION', 'IB_KEY' )

||loj_codigo

||ven_coo

||ven_ccf

||ven_totalbruto

||ven_totaldesc

||ven_totalcanc

||ven_percdesc

||ven_totalliquido

||ven_quant

||ven_totalacresc

)

from

vendas ven

where ven.loj_codigo = :loj_codigo and

ven_numero = :ven_numero

into

:ven_hash ;

suspend;

end

entao executa essa procedure via delphi, EXECUTE PROCEDURE SET_CONTEXTO(1010)

e não gera o hash no firebird, o q estou fazendo de errado. obg. nilson brasil

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Será que alguma das variáveis usadas no calculo do HASH é NULL ? Talvez você precise usar o coalesce...

Também, notei que que você não está usando o prefixo "new."


CREATE OR ALTER TRIGGER BIU_DOCUMENTO_HASH FOR DOCUMENTO
ACTIVE BEFORE INSERT OR UPDATE POSITION 0
AS
begin
new.HASH = hash( RDB$GET_CONTEXT('USER_SESSION', 'IB_KEY' )||
new.codloja||new.codterminal||new.codturno||new.coo||
new.denominacao||coalesce(new.contador,0)||new.numgnf||
new.datahora_inicio||coalesce(new.datahora_fim,cast('1-1-1' as timestamp))||
new.codcliente||new.codautorizado||coalesce(new.documento_cli,'')||coalesce(new.nome_cli,'')||
new.subtotal||new.desconto_acrescimo||coalesce(new.total_pago,0)||new.troco||
new.cancelado||new.trunca ) ;
end[/code]

  • Curtir 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 4219 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.