Jump to content

dev botao

CONTEXTO DE VARIAVEIS NO FIREBIRD


NILSON BRASIL
  • Este tópico foi criado há 4236 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 to comment
Share on other 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]

  • Like 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 to comment
Share on other sites

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.

The popup will be closed in 10 seconds...