2010-03-31 4 views
-2

Я хочу сохранить загруженное изображение в базу данных. Теперь я задаю вопрос:Сохранить в базе данных

  1. Каким должен быть тип данных для SQL Server 2000 для изображения? a. изображение б. varbinary

  2. Какой код для сохранения изображения в базе?

  3. Как получить изображение из базы данных и показать?

Пожалуйста, обратитесь ко мне в любой учебник или руководство. Или, если вы можете поделиться со мной.

Заранее спасибо.

+5

Вы уверены, что хотите это сделать? Вот некоторые обсуждения за/против: http://stackoverflow.com/questions/3748/storing-images-in-db-yea-or-nay –

+0

Да, я делаю. Спасибо за обмен. – Termedi

+3

Упоминайте свое решение? –

ответ

0

Я написал this article a назад на эту тему. Это должно помочь вам с # 2 и # 3. Он использует MySQL, но основы те же, вам просто нужно заменить вызовы MySQL вызовами MSSQL.

Что касается № 1, я бы пошел с очевидным выбором: «образ».
Я не уверен на 100% различий между ними. Это только кажется очевидным :)

Редактировать, согласно this, оказывается, что image тип данных является устаревшим. Он будет удален в будущих версиях. Не уверен, насколько это влияет на вас, поскольку вы используете 10-летнюю версию, но это стоит иметь в виду.

+0

Не обязательно ответ, но всякий раз, когда я загружаю изображения в db, я base64 кодирую его, а затем сохраняю в клобе. Когда я хочу его показать, я просто его расшифрую. – Flukey

+1

@ Jamie, почему это бесполезное кодирование? –

+1

@Jamie Yea, почему base64? Все, что делает, - это увеличение размера данных ... – Atli

4

Тип данных должен быть текстовым, потому что лучший способ сохранить изображение в базе данных - сохранить его путь. Пусть ваша ОС выполняет работу по хранению фактических файлов.

+0

Хотя я согласен, что это, как правило, лучший метод, это не то, что он спрашивает. - И сказать окончательно, что это лучший метод **, это неправильно. * Обычно * лучший метод, но, конечно, не всегда. – Atli

+0

У вас может быть точка, но я скажу окончательно, что хранение изображения в базе данных неверно. :) – simoncpu

1

Обычно на SQL Server для хранения изображений используется BLOB, Binary Large OBject. Мы использовали его для документов Word в предыдущем проекте, и он работал отлично. См. this article on Database Journal для получения дополнительной информации, хотя быстрый Google для типа BLOB вызовет множество примеров.

+0

Я не думал, что у SQL Server был тип BLOB. Или вы, возможно, используете его больше как общий термин для всех двоичных типов? – Atli

0

В SQLServer IMAGE или VARBINARY все те же самые. IMAGE - 2 ГБ, но VARBINARY() требует аргумента длины. Не рекомендуется хранить изображения в базе данных, размер увеличивается очень много, при этом каждый резервный файл необходимо сохранить все изображения, а с увеличением размера также увеличивается время на выполнение резервного копирования и восстановления. Вам также необходимо изменить размер сетевого пакета (при свойствах сервера, расширенном, сетевом, сетевом размере пакета). В версиях SQL Server версии most adecuate тип данных является varbinary (MAX)

Смежные вопросы