Как сохранить образ от SQL Server до файла с помощью [закрытого] SQL

Регулярные выражения разработаны к образцовым шаблонам в одном размере. Насколько я понимаю Вы хотите соответствовать шаблонам в двумерной матрице символов.

можно ли использовать регулярные выражения? Это зависит от того, является ли свойство, которое Вы ищете, разложимым в компоненты, которые могут быть подобраны в одном размере или нет. Если так, можно выполнить регулярные выражения на столбцах и строках, и искать пересечения в наборах решения от тех. В зависимости от конкретной проблемы Вы имеете, это может или решить проблему, или она может найти области в Вашем 2-м массиве, которые, вероятно, будут решениями.

, Является ли Ваша проблема разложимой или нет, я думаю, пишущий, что некоторый пользовательский код будет неизбежен. Но по крайней мере это походит на интересную проблему, таким образом, работа должна быть приятной.

7
задан CheeseConQueso 4 November 2009 в 17:20
поделиться

4 ответа

Я пробовал использовать опцию @attach_query_result_as_file, но нет способа записать этот запрос в двоичном формате, чтобы я мог заставить его работать. Итак, следующий вариант - использовать bcp для временного файла, а затем прикрепить файл.

DECLARE @sql VARCHAR(1000)

SET @sql = 'BCP "SELECT ImageColumn FROM YourTable where id = 1 " QUERYOUT C:\TEMP\MyLogo.gif -T -fC:\TEMP\bcpFormat.fmt -S ' + @@SERVERNAME
EXEC master.dbo.xp_CmdShell @sql

exec msdb.dbo.sp_send_dbmail
@profile_name = 'MyProfile',
@recipients = 'bob@hotmail.com',
@subject = 'test as image',
@body=N'<p>Image Test</p><img src="MyLogo.gif" /><p>See image there?</p>', 
@file_attachments = 'C:\TEMP\MyLogo.gif',
@body_format = 'HTML';

bcpFormat.fmt будет выглядеть так:

8.0
1
1 SQLIMAGE 0 0 "" 1 Image ""

Это будет прикреплять изображение из вашей базы данных к электронному письму в виде файла. Он по-прежнему не будет отображать его «встроенным», так как потребуется немного поработать, чтобы mime закодировать изображение в теле письма и сослаться на него из вашего html. Вам также потребуется создать несколько уникальных имен для ваших файлов и очистки, чтобы несколько процессов не наступали друг на друга.

5
ответ дан 7 December 2019 в 12:21
поделиться

В этой статье объясняется, как можно использовать хранимые процессы автоматизации OLE SQL Server (которые позволяют создавать и использовать объекты на основе COM через T-SQL) для создания файла.

1
ответ дан 7 December 2019 в 12:21
поделиться

Возможна ли хранимая процедура SQL CLR (.NET)? При этом не возникнет проблем с сохранением данных из поля большого двоичного объекта во временный файл на диске.

0
ответ дан 7 December 2019 в 12:21
поделиться

Я думаю, что комментарий madC - лучшее решение. Вы также можете попробовать использовать что-то вроде этого:

INSERT INTO OPENROWSET ('BULK', '', BULK_BLOB) ...

но с моей стороны потребовались следующие дополнительные шаги:

sp_configure 'show advanced options', 1
reconfigure with override
sp_configure 'Ad Hoc Distributed Queries', 1 
reconfigure with override

И после этого результат из INSERT было:

Msg 7302, Level 16, State 1, Line 1
Cannot create an instance of OLE DB provider "BULK" for linked server "(null)".

Возможно, вы сможете найти идею, как заставить его работать.

-1
ответ дан 7 December 2019 в 12:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: