Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   SQL Server (http://www.forosdelweb.com/f87/)
-   -   Como detectar si hay error al enviar un e-mail desde un sp (http://www.forosdelweb.com/f87/como-detectar-si-hay-error-enviar-e-mail-desde-sp-498335/)

Developer9 15/06/2007 15:18

Como detectar si hay error al enviar un e-mail desde un sp
 
Que tal weyes, hize un procedimiento que envia un mail. el codigo es este:

Código:

ALTER PROCEDURE [dbo].[EnviaCorreoElectronico]

@PI_Destinatarios varchar(max),
@PI_Titulo nvarchar(255),
@PI_Body nvarchar(max)

AS

                EXEC msdb.dbo.sp_send_dbmail
                --@profile_name = 'Desarrollo',
                @recipients = @PI_Destinatarios,
                @subject = @PI_Titulo,
                @body = @PI_Body,
                @body_format = 'HTML';


Sencillito. Lo probé enviandome un mail a mi mismo y si funciona. Pero quisiera detectar si existe algún error. A propósito quité el comenté el primer parámetro y le hice alter table al procedimiento y luego lo ejecuté:

Código:

exec EnviaCorreoElectronico
 '[email protected]',
'Probando envio de correo electrónico desde un procedimiento almacenado de SQL Server 2005',
'Este es Cuerpo del mensaje'

if @@error<>0
begin
        select 'Error'
end

pero el @@error es igual a cero. Aunque me sale el error:

Msg 14636, Level 16, State 1, Procedure sp_send_dbmail, Line 94
No global profile is configured. Specify a profile name in the @profile_name parameter.


O sea, me sale un error, pero no lo puedo cachar de ninguna manera

Andres95 18/06/2007 11:46

Re: Como detectar si hay error al enviar un e-mail desde un sp
 
Puedes "cachar" el error que te regresa el procedimiento que envia el mail.

De BOL...
Código:

Valores de código de retorno
0 (correcto) o 1 (error)

Código:

Declare @ErrorReturn int

Set @ErrorReturn = 0
EXEC @ErrorReturn = msdb.dbo.sp_send_dbmail

Return @ErrorReturn


Developer9 18/06/2007 13:20

Re: Como detectar si hay error al enviar un e-mail desde un sp
 
Gracias Andresillo...

En la ayuda ya había visto en la ayuda del technet lo de

Código:

Valores de código de retorno
0 (correcto) o 1 (error)

Pero no sabía como aplicarlo, estaba confundido con el último parámetro del procedimiento que es de tipo output

Gracias


La zona horaria es GMT -6. Ahora son las 09:30.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.