Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 sp_send_dbmail с картинкой из базы  [new]
Alexander Us
Member

Откуда:
Сообщений: 1132
есть ли возможность вставить в письмо картинку из базы без сохранения на диске?

sp_send_dbmail...
3 дек 15, 13:12    [18507848]     Ответить | Цитировать Сообщить модератору
 Re: sp_send_dbmail с картинкой из базы  [new]
Glory
Member

Откуда:
Сообщений: 104760
Alexander Us
есть ли возможность вставить в письмо картинку из базы без сохранения на диске?

Вы не нашли в описании процедуры, что можно передавать в параметер attachment ?
3 дек 15, 13:18    [18507902]     Ответить | Цитировать Сообщить модератору
 Re: sp_send_dbmail с картинкой из базы  [new]
Alexander Us
Member

Откуда:
Сообщений: 1132
Glory,


Пришлось прикладывать картинку из файла:
@file_attachments	='C:\....\myImage.png',



А хотелось из базы:
@query				  ='select Image from Images where ID=1',	
@execute_query_database = 'Tools',
@attach_query_result_as_file = 1,	
@query_result_header=0,		
@query_no_truncate = 1,
@exclude_query_output=1,
@query_attachment_filename	='myImage.png',	


Но в этом случае в картинка перекодируется - байты передаются как текст.
Т.е если приложение сохранить, переименовать в *.txt то там находится 0x89504E470D0A1A0A0000000D494.... как текст.
А должны быть байты.
3 дек 15, 13:52    [18508237]     Ответить | Цитировать Сообщить модератору
 Re: sp_send_dbmail с картинкой из базы  [new]
Glory
Member

Откуда:
Сообщений: 104760
Alexander Us
А хотелось из базы:

В MSSQL нет типа данных "картинка" и нет типа данных "файл"

Alexander Us
Но в этом случае в картинка перекодируется - байты передаются как текст.
Т.е если приложение сохранить, переименовать в *.txt то там находится 0x89504E470D0A1A0A0000000D494.... как текст.
А должны быть байты.

А 0x89504E470D0A1A0A0000000D494 это не байты по-вашему ?
3 дек 15, 13:58    [18508282]     Ответить | Цитировать Сообщить модератору
 Re: sp_send_dbmail с картинкой из базы  [new]
Alexander Us
Member

Откуда:
Сообщений: 1132
Glory
А 0x89504E470D0A1A0A0000000D494 это не байты по-вашему ?


Нет, это кубиты. Зелёные.

Имелось ввиду, если отрыть приложенный файл в текстовом эдиторе, то видно 0x89504E470D0A1A0A0000000D494...
А должно быть видно то же самое но из хекс эдитора.
3 дек 15, 14:24    [18508490]     Ответить | Цитировать Сообщить модератору
 Re: sp_send_dbmail с картинкой из базы  [new]
Glory
Member

Откуда:
Сообщений: 104760
Alexander Us
Имелось ввиду, если отрыть приложенный файл в текстовом эдиторе, то видно 0x89504E470D0A1A0A0000000D494...
А должно быть видно то же самое но из хекс эдитора.

Мда уж. 0x89504E470D0A1A0A0000000D494 - это тоже хекс
3 дек 15, 14:27    [18508516]     Ответить | Цитировать Сообщить модератору
 Re: sp_send_dbmail с картинкой из базы  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4248
Alexander Us
без сохранения на диске?

А чем через сохранение не подходит?
Это было бы проще реализовать.
3 дек 15, 15:10    [18508828]     Ответить | Цитировать Сообщить модератору
 Re: sp_send_dbmail с картинкой из базы  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
@Alexander Us, поищите возможность перекодировать Вашу картинку в base64

когда выполняете sp_send_dbmail укажите, что текст будет в формате HTML

в теле письма будет примерно такое

<img src="data:image/png;base64,.............................." alt="....." />


но нужно помнить не во всех почтовых клиентах эта картинка будет показываться
3 дек 15, 16:50    [18509569]     Ответить | Цитировать Сообщить модератору
 Re: sp_send_dbmail с картинкой из базы  [new]
Alexander Us
Member

Откуда:
Сообщений: 1132
AlanDenton,

Спасибо, с base64 я уже попробовал, в моём оутлуке картинка не появилась.
Пришлось остановиться на варианте с файлом, хотя он кажется мне менее мзящным чем из базы.

Всем спс.
4 дек 15, 13:02    [18513477]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить