none
Como fazer para uma trigger não retornar erro na aplicação. RRS feed

  • Pergunta

  • Pessoal eu fiz uma trigger para enviar email assim que a venda é cadastrada na tabela Venda. Percebi que se der erro na trigger o erro volta para minha aplicacao. Eu não quero isso. Se der erro na trigger eu quero que não retorne nada na minha aplicação. Alguem sabe como eu faço isso?

    • Tipo Alterado Gustavo Maia Aguiar segunda-feira, 22 de março de 2010 18:50 É uma pergunta e não uma discussão
    segunda-feira, 22 de março de 2010 14:18

Todas as Respostas

  • Thiago,

    A trigger tabalha com transação, o correto seria vc colocar este envio de email na aplicação o que também vai tornar sua atividade mais performática também.

    Att.
    Marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    segunda-feira, 22 de março de 2010 14:57
  • Eu tenho um aplicativo comercial que roda em mais de 1000 clientes. Apenas nesse eu preciso que envia email.... logo eu queria apenas colocar no banco de dados. E Gostaria que não retornasse erro da trigger nunca.

    Já tentei tratar com o begin try e o cacth try mais sempre retorna erro.

    segunda-feira, 22 de março de 2010 17:18
  • Cara o que vc pode fazer é na trigger ao inves de disparar o email, alimente uma tabela axiliar onde vc informa o numero da venda, ai vc cria um proc e agenda (um job) para enviar email de 30 em 30 min por ex.

    O correto seria a aplicacao fazer isto... mas como seu cenario complica esta alteracao, talvez esta acao seja melhor que trigger disparar o email.

    att,
    Marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    segunda-feira, 22 de março de 2010 17:35
  • Boa Tarde,

    Concordo que o ideal seria o envio de email estar fora da trigger (pelo menos seria mais performático). É estranho solicitar a trigger que não retorne nada em caso de erro. Você ficaria sem saber se a ação foi ou não concluída com êxito. No caso do TRY CATCH qual é o erro informado ?

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Como descobrir a data do último acesso a uma tabela ?
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!964.entry


    Classifique as respostas. O seu feedback é imprescindível
    segunda-feira, 22 de março de 2010 18:52
  • Pessoal resolvi colocar a rotina em uma procedure e chamar da aplicacao.

    O motivo de não querer retornar o erro para a aplicacao é que se der erro na trigger eu terei que tratar na aplicacao e a ideia inicial era nao mexer em nada na aplicacao. Por isso havia colocado na trigger.

    De qualquer forma obrigado pela ajuda.

    terça-feira, 23 de março de 2010 02:04