Boa tarde a todos,

Eu tenho uma trigger simples para preencher alguns campos da minha tabela a
cada alteração de registro:

*CREATE TRIGGER tabela_teste_trigger_ui
*
*  BEFORE INSERT OR UPDATE *
*  ON public.tabela_teste FOR EACH ROW *
*  EXECUTE PROCEDURE public.atualiza_campos_ultimos();*

*>>>>> Ela aciona uma a função abaixo:*

*CREATE OR REPLACE FUNCTION public.atualiza_campos_ultimos(
*
*)*
*RETURNS trigger AS*
*$body$*
*BEGIN
*
*
*
*  if (TG_OP = 'INSERT') then*
*    operacao := 'I';*
*  else*
*    operacao := 'A';  *
*  end if;*
*  *
*  new.DATA_ALTERACAO:= current_timestamp;*
*  new.TIPO_OPERACAO := operacao;
*
*  *
*  if (TG_OP = 'INSERT') then
*
*    return old;*
*  else*
*    return new;*
*  end if;*
*
*
*END;
*
*$body$*
*LANGUAGE 'plpgsql'*
*VOLATILE*
*RETURNS NULL ON NULL INPUT*
*SECURITY INVOKER*
*COST 100;*

*Problemática:*

Ao executar pelo banco de dados, através de scripts funciona normalmente,
no entanto, quando é executada via aplicação usando Delphi 2007 + Zeos
7.0.4 eu recebo o erro:

*'0 record(s) updated. Only one record should have been updated.'*
*
*
Em minhas pesquisas e testes realizado pude perceber que o problema esta
relacionado com o update dos campos da tabela, fato é que, ao desativar a
trigger a aplicação consegue gravar os dados normalmente na tabela.

Alguém já passou por isso ou percebeu alguma coisa na função que possa
estar ocasionando o problema?

Obrigado.



-- 
------------------------
Rafael M. Naves
Analista/Programador
(31)9861-4047 (*novo!*)
(31)8636-8910
http://www.twitter.com/navesrafael
http://www.rafaelnaves.com
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a