Duvida com Trigger

Discussão em 'Progress 4GL' iniciado por LeandroSantos, Abril 13, 2010.

  1. LeandroSantos

    LeandroSantos Membro Participativo

    Estou implementando triggers no meu Banco (Delete,Write) pelo Dicionario de Dados.
    Ps.: é produto especifico, nao utilizo nenhum produto DataSul.

    A duvida é a seguinte:
    Quando crio um novo registro na tabela não quero gravar log, mas quando dou.
    Create Tabela.
    Assign Tabela.campo1 tabela.campo2......
    o Progress entende que estou alterando e grava o log.

    Se eu fizer desta forma:
    Create Tabela.
    Update Tabela.
    não gera o log, mas pra fezer desta forma teria que alterar todos os meus programas.

    Existe uma maneira de tratar isso?
  2. kirchner

    kirchner Membro Participativo Moderador

    Na verdade quando você faz um CREATE e depois um ASSIGN está alterando o registro.
    O CREATE cria um registro padrão, e depois o ASSIGN altera os valores.

    Talvez se você utilizar INSERT o client não execute a trigger de WRITE.
  3. jalegria

    jalegria Membro Participativo

    na trigger de write vc pode detectar se o registro é novo (create) ou se vc esta alterando um registros ja existente.

    na trigger vc pode fazer assim:

    if new tabela
    then do:
    /*Registro novo*/
    end.
    else do:
    /*Registro já existente*/
    end.

    ou pode desabilitar a trigger no programa que da create na tabela com o DISABLE TRIGGER
  4. LeandroSantos

    LeandroSantos Membro Participativo

    Com a dica do jalegria funcionou perfeito.

    Obrigado kirchner e jalegria.

Compartilhe esta Página