@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
