SQL Server 2008 R2 хранит мультимедиа - PullRequest
3 голосов
/ 03 ноября 2011

Когда я сохраняю mp3-файлы или изображения (в основном JPEG) в таблицу, данные, похоже, изменяются. Когда я загружаю содержимое таблицы обратно на локальный компьютер и выполняю различие между исходными данными, становится очевидно, что файлы не совпадают. Также файлы не могут быть просмотрены / воспроизведены на моем локальном компьютере.

Есть идеи, что может быть причиной этого? Проблемы с типом данных varchar?

Я извлекаю данные с помощью параметра «Сохранить результаты как», выбираю все файлы и применяю правильное расширение.

Также это для школьного проекта, и ограничения не являются гибкими (должны быть полностью реализованы в SQL)

Еще одна вещь, как насчет хранения указателя на мультимедиа? Как бы я поступил так?

Вот мой код:

USE master
----created in master schema

drop table blobtable

CREATE TABLE blobtable
  (BLOBData varchar(MAX))

BULK INSERT blobtable
FROM 'C:\Murach\SQL Server 2008\test.mp3'

select * from blobtable 

1 Ответ

3 голосов
/ 03 ноября 2011

Не следует хранить двоичные данные в столбце VARCHAR.По крайней мере, вы должны использовать тип данных VARBINARY или, если можете, использовать FILESTREAM .Вы упоминаете, что это для класса, и ваши возможности ограничены, но оказывается, что вы можете вводить двоичные данные из оператора T-SQL:

CREATE TABLE EmployeeProfile ( 
  EmpId INT, 
  EmpName VARCHAR(50) not null, 
  EmpPhoto VARBINARY(max) not null
)
GO 

INSERT EmployeeProfile (EmpId, EmpName, EmpPhoto) 
SELECT 1001, 'Vadivel', 
BulkColumn from Openrowset( Bulk 'C:\Blue Lace 16.bmp', Single_Blob) as EmployeePicture

(из windowsclient.net / blogs / zuker *)1009 *)

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