trigger nao funciona

Firebird

14/07/2008

ola, boa tarde..estou com um problema com esta trigger

as
begin

/* GERA NOVO CODIGO*/
if (new.bc_codigo is null) then OK
new.bc_codigo = gen_id(gen_t_bancos_id,1);

/* INSERE DATA DO CADASTRO*/
if (new.bc_data_cadastro is null) then OK
new.bc_data_cadastro = current_timestamp;


O problema comeca aqui, eu nao cosigo fazer o campo new.bc_loja receber o resultado q esta nessa viu q no caso e minha loja padrao como faco para isso ocorrer sera q usei erra tinha q usar uma SP mas se for como poderia pegar o resultado da SP??? obrigado pela ajuda t++

/* LOCALIZA DA FILIAL*/
if (new.bc_loja is null) then
begin
/* Select from vw_loja_padrao;*/
new.bc_loja = select loja_padrao from vw_loja_padrao;
end


Eltontlms

Eltontlms

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

14/07/2008

tente jogar o resultado numa variável antes de aplicar ao campo. assim:
as
declare variable lojaPadrao integer;
begin
  /* GERA NOVO CODIGO*/
  if (new.bc_codigo is null) then
    new.bc_codigo = gen_id(gen_t_bancos_id,1);

  /* INSERE DATA DO CADASTRO*/
  if (new.bc_data_cadastro is null) then
    new.bc_data_cadastro = current_timestamp;

O problema comeca aqui, eu nao cosigo fazer o campo new.bc_loja receber o resultado q esta nessa viu q no caso e minha loja padrao como faco para isso ocorrer sera q usei erra tinha q usar uma SP mas se for como poderia pegar o resultado da SP??? obrigado pela ajuda t++

/* LOCALIZA DA FILIAL*/
if (new.bc_loja is null) then
begin
  /* note que para esse código funcionar corretamente é */
  /* necessário garantir que a instrução retorne apena 1 registro */
  select loja_padrao from vw_loja_padrao into :lojaPadrao;
  new.bc_loja = :lojaPadrao;
end



GOSTEI 0
POSTAR