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

Откуда:
Сообщений: 7
Есть таблица с двумя столбцами "_Name" типа nvarchar(128) и "_Image" типа varbinary(MAX). Создаю процедуру, которая получала бы на вход 2 строковых параметра: имя файла и его содержимое в формате Base64 и добавляла бы в таблицу новую строку оставляя 1й параметр как есть, а вот 2й конвертируя в бинарное значение.

ALTER PROCEDURE [dbo].[Test_Insert]
@_Name nvarchar(128),
@_ImageText nvarchar(MAX)
AS
BEGIN
INSERT INTO [dbo].[Test] (_Name, _Image)
VALUES(
@_Name
,CAST(N'' AS XML).value(
'xs:base64Binary("SGVsbG8=")', 'VARBINARY(MAX)')
)
END

Собственно загвоздка в параметре функции XQuery. В приведенном примере я вручную прописал там строку "SGVsbG8=", а мне-то надо туда значение параметра хранимой процедуры @_ImageText подставлять. Подскажите пож-та как.
13 апр 15, 17:53    [17509305]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с синтаксисом пож-та  [new]
Gviber
Member

Откуда:
Сообщений: 124
ALTER PROCEDURE [dbo].[Test_Insert]
 @_Name nvarchar(128), 
 @_ImageText nvarchar(MAX)
AS
BEGIN
 INSERT INTO [dbo].[Test] (_Name, _Image) 
VALUES( 
 @_Name
 ,CAST(N'' AS XML).value(
 'xs:base64Binary("'+@_ImageText+'=")', 'VARBINARY(MAX)')
 )
END


Может так?
13 апр 15, 18:02    [17509337]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с синтаксисом пож-та  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
SergTheGreat,

value('xs:base64Binary(sql:variable("@_ImageText"))', 'VARBINARY(MAX)')
13 апр 15, 18:31    [17509412]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с синтаксисом пож-та  [new]
SergTheGreat
Member

Откуда:
Сообщений: 7
Вариант daw сработал замечательно! Но спасибо обоим ответившим.
14 апр 15, 10:12    [17511276]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить