Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Como detectar si hay error al enviar un e-mail desde un sp

Estas en el tema de Como detectar si hay error al enviar un e-mail desde un sp en el foro de SQL Server en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 15/06/2007, 15:18
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 1 mes
Puntos: 47
Pregunta 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
  #2 (permalink)  
Antiguo 18/06/2007, 11:46
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 5 meses
Puntos: 38
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
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #3 (permalink)  
Antiguo 18/06/2007, 13:20
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 1 mes
Puntos: 47
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
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:59.