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

Откуда: Минск
Сообщений: 150
Добрый день!

Наткнулся на такую проблему.

Есть макет HTML страницы. Надо послать письмо используя этот макет + в оперделенные места вставить опред. значения выбранные из БД SQL Server 2005.

Письмо отсылаю так:
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'test',
@recipients = 'test@test.by',
@body = @template,
@body_format = 'HTML',
@subject = 'test';

Загоняю код HTML'ки в перменную varchar(8000), добавляю в нужные мне места %s и вызываю

exec master.dbo.xp_sprintf @template output, @template, @t1, @t2

Проблема в том,что xp_sprintf в output возращает varchar(255) !!!!


Есть ли аналог xp_sprintf ?

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


Заранее спасибо за любую помощь.
5 апр 07, 13:52    [3984555]     Ответить | Цитировать Сообщить модератору
 Re: аналог хранимой процедуры xp_sprintf  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Ну, Replace и вперед.
5 апр 07, 13:54    [3984571]     Ответить | Цитировать Сообщить модератору
 Re: аналог хранимой процедуры xp_sprintf  [new]
vakum
Member

Откуда: Минск
Сообщений: 150
Replace не подходит из-за производительности ,
у меня порядка 20 параметров передаваться будут :-)
5 апр 07, 14:10    [3984688]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: аналог хранимой процедуры xp_sprintf  [new]
amr-now
Member

Откуда:
Сообщений: 3
Вот, например, через sys.messages. Ограничение текстового поля 2048 символов.

exec sp_addmessage 50001, 16,'Тестовый %s пример сообщения', @replace = 'replace'
select formatmessage(50001,'интересный')

Нужно предварительно убедиться, что Ваше пользовательское сообщение не конфликтует с ранее имеющимися пользовательскими сообщениями.
28 апр 14, 11:35    [15945273]     Ответить | Цитировать Сообщить модератору
 Re: аналог хранимой процедуры xp_sprintf  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
amr-now
Вот, например, через sys.messages. Ограничение текстового поля 2048 символов.

exec sp_addmessage 50001, 16,'Тестовый %s пример сообщения', @replace = 'replace'
select formatmessage(50001,'интересный')

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


Поздравляю с выходом из комы, 7 лет срок не маленький:)
28 апр 14, 11:53    [15945430]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить