Как полное включая все один пакет, Visual Studio 2008 является лучшим IDE для разработки C++ с Windows
Вы можете вставить в поле varbinary (max) с помощью T-SQL в среде SQL Server Management Studio и, в частности, с помощью команды OPENROWSET.
Например:
INSERT Production.ProductPhoto
(
ThumbnailPhoto,
ThumbnailPhotoFilePath,
LargePhoto,
LargePhotoFilePath
)
SELECT ThumbnailPhoto.*, null, null, N'tricycle_pink.gif'
FROM OPENROWSET
(BULK 'c:\images\tricycle.jpg', SINGLE_BLOB) ThumbnailPhoto
Взгляните на в следующей документации представлен хороший пример / пошаговое руководство
Работа с типами больших значений
Обратите внимание, что путь к файлу в этом случае относится к целевому серверу SQL, а не к вашему клиенту, выполняющему эту команду.
Хорошо ... это заняло у меня слишком много времени. Инструмент sql-management studio просто не подходит для таких простых вещей (что я заметил раньше, когда искал, где установить тайм-аут для запросов, и это было сделано в 4 разных местах)
Я загрузил другой sql пакет редактора (в моем случае - sql maestro). И вот, он включает в себя редактор blob, в котором вы можете просматривать капли и загружать в это поле новые капли.
спасибо за ввод!
Это нужно делать из студии mgmt? Вот как мы это делаем из строки cmd:
"C: \ Program Files \ Microsoft SQL Server \ MSSQL \ Binn \ TEXTCOPY.exe" / S
В MSDN есть статья Работа с большими типами значений, которая пытается объяснить, как работают части импорта, но это может немного запутать, так как это делает 2 вещи одновременно.
Здесь я привожу упрощенную версию, разбитую на 2 части. Возьмем следующую простую таблицу:
CREATE TABLE [Thumbnail](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Data] [varbinary](max) NULL
CONSTRAINT [PK_Thumbnail] PRIMARY KEY CLUSTERED
(
[Id] ASC
) ) ON [PRIMARY]
Если вы запустите (в SSMS):
SELECT * FROM OPENROWSET (BULK 'C:\Test\TestPic1.jpg', SINGLE_BLOB) AS X
то увидите, что результат выглядит как таблица с одним столбцом с именем BulkColumn
. Вот почему вы можете использовать его в INSERT, например:
INSERT [Thumbnail] ( Data )
SELECT * FROM OPENROWSET (BULK 'C:\Test\TestPic1.jpg', SINGLE_BLOB) AS X
Остальное - просто вписывание его во вставку с большим количеством столбцов, которые может иметь или не иметь ваша таблица. Если вы назовете результат select FOO
, то вы можете использовать SELECT Foo.BulkColumn
и as
после этого константы для других полей в вашей таблице.
Часть, которая может оказаться более сложной, заключается в том, как экспортировать эти данные обратно в файл, чтобы вы могли проверить, все ли в порядке. Если вы запустите его в строке cmd:
bcp "select Data from B2B.dbo.Thumbnail where Id=1"
queryout D:\T\TestImage1_out2.dds -T -L 1
Он начнет ныть о 4 дополнительных "параметрах" и даст вводящие в заблуждение значения по умолчанию (что приведет к изменению файла). Вы можете принять первый параметр, установить второй в 0, а затем пропустить третий и четвертый, или быть явным:
Введите тип хранения файла для поля Data [varbinary(max)]:
. Введите длину префикса поля Данные [8]: 0
Введите длину поля Данные [0]:
Введите терминатор поля [none]:
Затем появится вопрос:
Хотите ли вы сохранить информацию этого формата в файл? [Y/n] y
Имя файла хоста [bcp.fmt]: C:\Test\bcp_2.fmt
В следующий раз, когда вам придется его запускать, добавьте -f C:\Test\bcp_2.fmt
и он перестанет ныть :-)
Сэкономит кучу времени и огорчений.