2010-09-13 3 views
4

Я использую триггер на таблице для отправки электронной почты с помощью sp_send_dbmail.SQL Server SP_SEND_DBMAIL Вложение файла изображения

Я хочу включить прикрепление файла в электронное письмо типа изображения.

Необработанные данные для jpeg хранятся в столбце ndl_Image, который имеет двоичный тип.

У меня есть следующий код: -

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 #'[email protected] 
SET @Q = 'SELECT ndl_Image from dbo.ndl_data where ndl_ID ='[email protected] 
--Execute the stored procedure to send mail. 
EXEC msdb.dbo.sp_send_dbmail 

--Pass it the following paramaters. 
@[email protected], 
@[email protected], 
@[email protected], 
@profile_name='NDLProfile', 
@body_format ='HTML', 
    @execute_query_database='NDL_MX', 
@query = @Q, 
@attach_query_result_as_file = 1, 
@query_attachment_filename = 'image.jpg' 

Это работает нормально, но, кажется, возвращает запрос в виде текстового файла, если я закомментируйте последнюю строку.

Как я могу получить вложение в виде файла jpeg ????

Спасибо.

ответ

0

Я не думаю, что это возможно. Как указано в документации для SP_SEND_DBMAIL:

«При указании запроса, набор результатов отформатирован как встроенный текст двоичных данных в результате отправляется в шестнадцатеричном формате.» Добавлен [Выделено ]

+0

Я думаю, вы могли бы выполнить эту же идею, однако, сначала используя BCP для экспорта в файловую систему. Хотя это не так элегантно, как прикрепление прямо к varbinary, конечная цель может быть достигнута. Я разместил здесь несколько примеров кода: http://stackoverflow.com/a/12432031/261997 – RThomas

Смежные вопросы