1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

Urgente Criar Trigger para pegar dados após um insert

Discussão em 'Progress 4GL' iniciado por Gilberto Gomes Junior, Novembro 19, 2014.

  1. Gilberto Gomes Junior

    Gilberto Gomes Junior Sem Pontuação

    Boa noite a todos,

    Estou com uma duvida de como criar uma #trigger que será acionada logo após um "insert" na minha tabela item.
    Minha principal dificuldade é como pegar os dados que acabaram de ser inseridos.
    Eu estava tentando utilizar o metodo CREATE da trigger.
    Mas não obtive muito sucesso. Alguem tem algum exemplo de trigger sobre isso?
    Obrigado a todos.
    Att,
    Gilberto Gomes
  2. reissobr

    reissobr Membro Participativo

    @Gilberto Gomes Junior
    Voce quer colocar uma trigger quando for incluido um novo item ?

    É algo do tipo ....

    DEFINE PARAMETER BUFFER new-item FOR item.
    DEFINE PARAMETER BUFFER old-item FOR item.

    IF new(item)
    THEN DO:
    END.

    No manual de customizaçoes (acho que tem no forum) do DDK, tem explicação bem detalhada.

    Att;
    Russo.
  3. Gilberto Gomes Junior

    Gilberto Gomes Junior Sem Pontuação

    Bom dia Russo,
    Tentei fazer um teste desta maneira e não consegui.
    É apresentado um erro que eu não consigo colocar um buffer em uma trigger.
    upload_2014-11-20_7-42-15.png
  4. reissobr

    reissobr Membro Participativo

    @Gilberto Gomes Junior

    O exemplo que passei é para colocar um trigger no banco, la no integracao / tecnologia /manutencao / Tabelas Dicionario Datasul.
    Até hoje, sempre defini as triggers assim, nunca defini em outro lugar.
  5. Eilleen

    Eilleen Membro Ativo

    Boa tarde!
    Para definir uma trigger no banco, desenvolvendo um .p da forma como está fazendo, para CREATE não precisa definir BUFFER, porém o CREATE roda antes de você salvar os dados no registro.

    Exemplo:
    CREATE tabela.
    ASSIGN tabela.cod = 1.

    A trigger de CREATE é executada logo após o comando CREATE, então os dados do seu registro ainda vão estar em branco, e não existe registro anterior (old-item, no seu exemplo). Essa trigger é usada geralmente quando você quer gravar algum campo id na tabela. Para vc obter os dados que estão sendo salvos, você deve usar a trigger que WRITE, definindo dessa forma:

    TRIGGER PROCEDURE FOR WRITE OF item NEW item-new OLD item-old.

    Dessa forma o item-new e o old-new são os registros com os dados novos e os anteriores, respectivamente.

    Espero que essa informação ajude! ;)
    Agnaldo curtiu isso.

Compartilhe esta Página