Как вставить JPEG в поле базы данных SQL Server 2000 с типом изображения, используя Transact SQL - PullRequest
8 голосов
/ 31 июля 2009

Я пытаюсь выяснить, как вставить файл .JPG в поле базы данных SQL Server 2000 с изображением типа, используя Transact SQL. Спасибо.

Ответы [ 3 ]

9 голосов
/ 31 июля 2009

Использовать OPENROWSET:

INSERT MyTable (ImageColumnName) 
SELECT BulkColumn FROM OPENROWSET (BULK 'c:\myjpeg.jpg', SINGLE_BLOB) AS X

РЕДАКТИРОВАНИЕ Ой, вы используете 2000 - предыдущее решение не поддерживается. Вы должны использовать WRITETEXT:

CREATE TABLE MyTable 
(
    ID INT PRIMARY KEY IDENTITY (1,1), 
    ImageColumnName IMAGE NULL
)
GO

-- must insert a dummy value into the image column for TEXTPTR 
-- to work in next bit
DECLARE @RowId INT
INSERT MyTable (ImageColumnName) VALUES (0xFFFFFFFF)
SELECT @RowId = SCOPE_IDENTITY()

-- get a pointer value to the row+column you want to 
-- write the image to
DECLARE @Pointer_Value varbinary(16)
SELECT @Pointer_Value = TEXTPTR(ImageColumnName)
FROM MyTable
WHERE Id = @RowId

-- write the image to the row+column pointer
WRITETEXT MyTable.ImageColumnName @Pointer_Value 'c:\myjpeg.jpg'
2 голосов
/ 31 мая 2011

Существует инструмент под названием textcopy.exe Вы можете найти его в MSSQL \ Binn или получить с SQL Server 2000 SP4

Александр Чигрик написал хорошую хранимую процедуру для использования с SQL-запросом:

http://www.mssqlcity.com/Articles/KnowHow/Textcopy.htm

0 голосов
/ 09 ноября 2011

Хранимая процедура, найденная в этом уроке, работает для меня:

Краткое руководство по тексту, тексту и изображению

...