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

Откуда: Kiev
Сообщений: 100
Добрый всем день.
Имею: Microsoft SQL Server 2012

Есть задача: создать скрипт, который бы вставлял в таблицу, в поле типа Image определенное изображение (16х16 пикселей).
Примеров как это выполнить путем указания пути к файлу довольно много.
Но моя задача сохранить скрипт, который бы добавлял запись с иконкой без пути к файлу.
Т.е, примерно так:
Создадим тестовую таблицу:
CREATE TABLE TestImage
(
	Id INT NOT NULL IDENTITY,
    Icon IMAGE NULL 
    CONSTRAINT [PK_TestImageId] PRIMARY KEY CLUSTERED ([Id] ASC)
) 
GO 


Инсертим в нее изображение из существующего файла:
INSERT INTO TestImage(Icon) 
SELECT BulkColumn FROM OPENROWSET(BULK N'E:\ANK\OK_16X16.png', SINGLE_BLOB) rs


Теперь в Management Studio получаю строку с только что добавленным изображением:
SELECT Icon FROM TestImage 

, копирую ее в скрипт:

INSERT INTO TestImage(Icon)  
VALUES('0x89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF610000000467414D410000AFC837058AE90000001974455874536F6674776172650041646F626520496D616765526561647971C9653C0000015349444154384F63F8FFFF3F4518AB202918AB2021CCA5CE0BA4206C0C494298DB50F0BF80AF349009E16328C087792D45FE4B272BFF178A52007221627049814465B82036CCE728FE5F2547F5BF7C81FA7FA1682C0668566AFEC765888097D47FDD12B5FFDA159A100322E581C21039B8A2A03906FFE316EA6318221824FBDFBC46E3BF59A316D800993495FF3C36A270357085C1F30DFF771F31FB1F364B0F6E8870B4E27F8756ADFF8E9DDA6003D4F2D5FEF3B94A80E5601861C04223B001753B8DFFFB4DD6F9AF5AA4F6DFAB5FFBBFEF245DB001FAE5EA28A10FC3708674A3DEFFE2AD2660038AD61BFE4F5DAAFF3F72B61ED8008B0660F88422FC8D8C5138520D7AFF33D71AA118E004B45D385E09288DAA11863104248186C42F31001BE03359F7BF48A61A5018550D32C62A2851AFF7DF6D8ADE7FB1622D2017531E1963150461A11A5D20855D0E196315241EFF6700001FBFAACBD8443DC10000000049454E44AE426082')



И вижу, что полученный результат отличается от ожидаемого даже по длине данных:
SELECT Icon, DATALENGTH(Icon) FROM TestImage


Догадываюсь, что с типом Image такие трюки (напрямую - копировать из Management Studio и вставлять в скрипт) не корректны. Но тогда как???

К сообщению приложен файл. Размер - 463bytes
25 июл 16, 18:13    [19453251]     Ответить | Цитировать Сообщить модератору
 Re: Поле image. Вставить изображение из скрипта (не из файла)  [new]
BERSERC
Member

Откуда:
Сообщений: 442
Anatoliy,
все дело в кавычках)))

попробуй так
INSERT INTO TestImage(Icon)  
VALUES(0x89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF610000000467414D410000AFC837058AE90000001974455874536F6674776172650041646F626520496D616765526561647971C9653C0000015349444154384F63F8FFFF3F4518AB202918AB2021CCA5CE0BA4206C0C494298DB50F0BF80AF349009E16328C087792D45FE4B272BFF178A52007221627049814465B82036CCE728FE5F2547F5BF7C81FA7FA1682C0668566AFEC765888097D47FDD12B5FFDA159A100322E581C21039B8A2A03906FFE316EA6318221824FBDFBC46E3BF59A316D800993495FF3C36A270357085C1F30DFF771F31FB1F364B0F6E8870B4E27F8756ADFF8E9DDA6003D4F2D5FEF3B94A80E5601861C04223B001753B8DFFFB4DD6F9AF5AA4F6DFAB5FFBBFEF245DB001FAE5EA28A10FC3708674A3DEFFE2AD2660038AD61BFE4F5DAAFF3F72B61ED8008B0660F88422FC8D8C5138520D7AFF33D71AA118E004B45D385E09288DAA11863104248186C42F31001BE03359F7BF48A61A5018550D32C62A2851AFF7DF6D8ADE7FB1622D2017531E1963150461A11A5D20855D0E196315241EFF6700001FBFAACBD8443DC10000000049454E44AE426082)
25 июл 16, 18:19    [19453282]     Ответить | Цитировать Сообщить модератору
 Re: Поле image. Вставить изображение из скрипта (не из файла)  [new]
Anatoliy
Member

Откуда: Kiev
Сообщений: 100
Действительно получилось :)
Все работает. Спасибо!
25 июл 16, 18:56    [19453517]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить