@Rafael Fialho,

Valeu pela resposta, mas a estrutura utilizada esta funcionando sem
problemas para outros bancos e outras tabelas.
Tudo acontece quando ativo a trigger da minha tabela do banco. Não consigo
fazer nenhuma inserção no banco por conta do erro.

@Marcelo Silva,

Valeu pela resposta, mas não é o caso. A trigger fica lá no banco
normalmente, a aplicação, uso apenas para fazer o insert ou update da
tabela.


Verifiquei também que ao fazer apply pela aplicação com a trigger ativa,
não chega nada no log do Postgre.



Em 3 de setembro de 2013 17:50, Marcelo da Silva <[email protected]>escreveu:

>
> Olha vou dar um "xutão" aqui...
>
> Se estiver executando sua Trigger num ZQuery normal, possivelmente ele vai
> dar erro porque o ZQuery precisa de um retorno do SQL
> Em outras palavras, ele serve pra SELECT * FROM TABELA
> Assim como o ZUpdate serve pra UPDATE :-)
> Pra executar Procedures e Triggers do banco você deve executar diretamente
> no SQL direto
>
> Exemplo:
>
> var
>   zqrLocal: TZQuery;
> begin
>   zqrLocal := TZQuery.Create(nil);
>   zqrLocal.Connection := SeuZconecta;
>   zqrLocal.Close;
>   zqrLocal.SQL.Add('SEU SQL');
>   zqrLocal.ExecSQL;
>   FreeAndNil(zqrLocal);
> end;
>
> Veja ai se funciona
>
>
> Marcelo Silva
> ---------------------------------------
>
>
> Em 3 de setembro de 2013 17:35, Rafael Fialho Corrêa <
> [email protected]> escreveu:
>
> Já passei por algo parecido sim, Rafael.
>> Normalmente o erro estava no próprio SQL repassado ao Zeos.
>> Eu utilizo sempre esta estrutura para escrita/edição de dados:
>> "select * from tabela where id_tabela = :id_tabela"
>> Neste caso, ao efetuar insert ou update, o sistema sempre se comporta de
>> maneira correta.
>>
>> De qualquer forma, creio que deves verificar as propriedades do teu
>> TZQuery, antes de mais nada, e verificar se a estrutura de query repassada
>> ao componente está de maneira simples e "filtrada".
>>
>>
>> Em 3 de setembro de 2013 17:06, Rafael Naves <
>> [email protected]> escreveu:
>>
>>> 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
>>>
>>>
>>
>> _______________________________________________
>> pgbr-geral mailing list
>> [email protected]
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>>
>
>
> --
> Marcelo Silva
> ----------------------------------------------------------------
> Desenvolvedor Delphi / PHP
> My Postgres database
> Cel.: (11) 99693-4251
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
------------------------
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