Jump to content

dev botao

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

Recommended Posts

Posted

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

  • Fundadores
Posted

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.

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