Question

J'utilise un déclencheur sur une table d'envoyer un e-mail en utilisant sp_send_dbmail.

Je veux inclure une pièce jointe dans l'e-mail d'un type d'image.

Les données brutes pour le jpeg sont stockées dans la colonne ndl_Image qui est de type binaire.

Je le code suivant: -

DECLARE @ReferenceID varchar(max)
DECLARE @Recipient varchar(Max)
DECLARE @Body varchar(max)
DECLARE @Subject varchar(max)
DECLARE @Q varchar(max)

--Get the EntryId and FormID for the inserted data.
SET @ReferenceID = 40
SET @Recipient = (SELECT ndl_CategorySendTo FROM ndl_config WHERE ndl_CategoryName = 'Dead Animal')
SET @Body = '<html>A new request has been created.</html>'
SET @Subject = 'NDL Report It: New Request #'+@ReferenceID
SET @Q = 'SELECT ndl_Image from dbo.ndl_data where ndl_ID ='+@ReferenceID
--Execute the stored procedure to send mail.
EXEC msdb.dbo.sp_send_dbmail

--Pass it the following paramaters.
@recipients=@Recipient,
@body=@Body, 
@subject=@Subject,
@profile_name='NDLProfile',
@body_format ='HTML',
    @execute_query_database='NDL_MX',
@query = @Q,
@attach_query_result_as_file = 1,
@query_attachment_filename = 'image.jpg'

Cela fonctionne bien, mais semble renvoyer la requête sous la forme d'un fichier texte si je commente la dernière ligne.

Comment puis-je obtenir la pièce jointe comme un fichier jpeg ????

Merci.

Était-ce utile?

La solution

Je ne pense pas que ce soit possible. Comme il est précisé dans la documentation sp_send_dbmail :

  

"Lorsqu'une requête est spécifiée, le résultat   ensemble est formaté en texte en ligne.    Les données binaires dans le résultat est envoyé   format hexadécimal. "[nous soulignons]

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top