Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
Гродненский Форум
26 Апрель 2024, 05:54:29
Новости, реклама:
   Главная   Новости Гродно Помощь Игры Календарь Войти Регистрация   Меню
Гродненский Форум > Компьютеры > Программирование
(Модераторы: Админ, barmalei) > Тема:

.Net 2.0 картинка в mssql

Страниц  :   Вниз
  Печать  
Автор Тема: .Net 2.0 картинка в mssql  (Прочитано 1862 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Coxa
JackPot's Team
Гродненец
**

Репутация: +11/-0
Offline Offline

Пол: Мужской
Сообщений: 132


Джеки поты - вперед!!!

Просмотр профиля
« : 03 Март 2008, 21:06:07 »

Как в БД в поле image вставить картинку? Мне надо эт сделать в windows forms.
Я гуглил, но ничего понятного и нормального не нашел...  Грустный
Отпишитесь, буду благодарен.
Записан



ghostWhite
Настоящий гродненец
****

Репутация: +26/-0
Offline Offline

Пол: Мужской
Сообщений: 387


Просмотр профиля
« Ответ #1 : 03 Март 2008, 22:32:55 »

ну не знаю как ты гуглил, вот тебе первый линк по моему запросу Подмигивающий

http://www.codeproject.com/KB/database/images2db.aspx

пользуй Подмигивающий
Записан

Не будите во мне зверя, он и так всё время не высыпается

maxposedon
Настоящий гродненец
****

Репутация: +26/-0
Offline Offline

Сообщений: 696


empty

Просмотр профиля
« Ответ #2 : 04 Март 2008, 00:37:59 »

За хранение файлов  в базе данных (в BLOB-ах и т.д.) нужно стрелять.
А по теме. BLOB/CLOB-ы твоё всё.
Записан
Coxa
JackPot's Team
Гродненец
**

Репутация: +11/-0
Offline Offline

Пол: Мужской
Сообщений: 132


Джеки поты - вперед!!!

Просмотр профиля
« Ответ #3 : 04 Март 2008, 19:34:18 »

Цитировать
За хранение файлов  в базе данных (в BLOB-ах и т.д.) нужно стрелять.
А по теме. BLOB/CLOB-ы твоё всё.
везде есть свои плюсы и минусы
ктому же мне эт нада не для серьезного дела.

Спасиб, буду разбираться.
Записан



VP
Гродненец
**

Репутация: +4/-0
Offline Offline

Сообщений: 84


Я люблю Гродненский форум!

Просмотр профиля Email
« Ответ #4 : 19 Март 2008, 16:46:53 »

Цитировать
За хранение файлов  в базе данных (в BLOB-ах и т.д.) нужно стрелять.
А по теме. BLOB/CLOB-ы твоё всё.
не вижу причины, чем хуже хранить  файлы в БД.
При работе с одной только БД проще обеспечить транзакционность операции, чем разделять операцию на части для работы с БД и для работы с файловой системой с ипользованием распределенных транзакций.
Записан
maxposedon
Настоящий гродненец
****

Репутация: +26/-0
Offline Offline

Сообщений: 696


empty

Просмотр профиля
« Ответ #5 : 19 Март 2008, 18:48:05 »

Цитировать
Цитировать
За хранение файлов  в базе данных (в BLOB-ах и т.д.) нужно стрелять.
А по теме. BLOB/CLOB-ы твоё всё.
не вижу причины, чем хуже хранить  файлы в БД.
При работе с одной только БД проще обеспечить транзакционность операции, чем разделять операцию на части для работы с БД и для работы с файловой системой с ипользованием распределенных транзакций.

1. рост нагрузки на базу
2. чем меньше база тем она быстрее для запросов -> ибо больше данных влазит в RAM
3. при хранении файлов в базе, нет возможности "отдавать статику" без нагрузки на сервер
4. сложно делать backup-ы (представьте ежедневное делание backup-ов).
5. нет возможности работать с файлами как с файлами (rsync, cp, просмотр и т.д)

а тразакционность и при связке база+файл делается ну очень легко
Записан
VP
Гродненец
**

Репутация: +4/-0
Offline Offline

Сообщений: 84


Я люблю Гродненский форум!

Просмотр профиля Email
« Ответ #6 : 19 Март 2008, 19:08:14 »

по пунктам
1. Роста нагрузки на БД замечено не будет, т.к. хранение больших типов осуществляется отдельно от хранения таблиц.
2. само собой. Исходя из п.1 роли не играет.
4. по-любому тебе придется делать бэкапы той же файловой системы, если она работает в паре с БД.
5. возражений нет. Просто обычно если файловая система работает совместно с БД, то как правило доступ к файлам очень ограничен и обычные операции для работы с файлами ну очень уж редко выполняются.

PS пункт 3 не совсем понял о чем речь
Записан
maxposedon
Настоящий гродненец
****

Репутация: +26/-0
Offline Offline

Сообщений: 696


empty

Просмотр профиля
« Ответ #7 : 19 Март 2008, 20:08:10 »

1. отдельно то отдельно, но вот простой select * начинает работать жутко более медленно, а также ещё много некоторых специфичных вещей, которые могут возникнуть в конкретной задаче
3. иногда(часто) мы должны отдавать бинарные данные, не тока напрямую в какуюто конкретную программу, но и например через http в виде ссылок и т.д. ==> так называемая задача "отдачи статических(неизменных) данных. Если файлы на fs -> то мы спокойно можем хранить отдавать их миную базу данных и не нагружая её (http, webdav, что угодно).
4. очень редко из базы данные удаляются (чаще помечаются как удалённые) при делаение очередного backup-а, я просто копирую новые файлы(время создания > предыдущего backup-а) и делаю dump базы. (ака хранилище файлов медленно уведичивается, и каждый день небольшие дампы). если файлы в базе, то каждый dump будет огромен, а файлы в блобах фактически дублировать предущие dump-ы. Итого при надобности хранить этак 10-100 последних dump-ов становится грустно.
5. насколько редко, это скорее вопрос архитектуры ситемы. Всё таки логичнее делать так, чтобы отдача бинарных данных могла работать минуя базу данных. (вопрос гибкости, маштабируемости и вообще по KISS).
Ну нет смысла просто хранить в базе файлы, если база эти файлы никак не обрабатывает.

Вот возьмём пример абстрактный, нужно грузить кортинки из хранилища:
я бы положил файлы на fs, всю метаинформацию и т.д. конечно положил бы в db. тогда я смог бы тупо возвращать не файлы, а например ссылки на файлы, в виде URI. А сами файлы через какой-нить web-сервер, webdav и т.д. Через базу ходить за файлами была бы большая нагрузка для базы.
Записан
ghostWhite
Настоящий гродненец
****

Репутация: +26/-0
Offline Offline

Пол: Мужской
Сообщений: 387


Просмотр профиля
« Ответ #8 : 19 Март 2008, 20:19:35 »

как по мне единственное что хоть как то оправдывает пафосные фразы о расстрелах людей хранящих файлы в базе Подмигивающий это вот этот самый пункт 3. всё остальное достаточно условно и спорно.

ну а использование отдельного сервера для отдачи статики имеет смысл только для проектов определённого масштаба и далеко не универсальный рецепт.

ну и чтобы совсем быть точным. если внимательно почитать первый пост то человек делает приложение на windows forms и уж в этом случае ни про какой сервер для отдачи "статики" и речи быть не может
Записан

Не будите во мне зверя, он и так всё время не высыпается

ghostWhite
Настоящий гродненец
****

Репутация: +26/-0
Offline Offline

Пол: Мужской
Сообщений: 387


Просмотр профиля
« Ответ #9 : 19 Март 2008, 20:29:20 »

Цитировать
1. отдельно то отдельно, но вот простой select * начинает работать жутко более медленно, а также ещё много некоторых специфичных вещей, которые могут возникнуть в конкретной задаче

в некоторых местах, где работают с высоконагруженными базами данных Подмигивающий за select * лишали части зарплаты Подмигивающий

Цитировать
5. насколько редко, это скорее вопрос архитектуры ситемы. Всё таки логичнее делать так, чтобы отдача бинарных данных могла работать минуя базу данных. (вопрос гибкости, маштабируемости и вообще по KISS).
Ну нет смысла просто хранить в базе файлы, если база эти файлы никак не обрабатывает.

Вот возьмём пример абстрактный, нужно грузить кортинки из хранилища:
я бы положил файлы на fs, всю метаинформацию и т.д. конечно положил бы в db. тогда я смог бы тупо возвращать не файлы, а например ссылки на файлы, в виде URI. А сами файлы через какой-нить web-сервер, webdav и т.д. Через базу ходить за файлами была бы большая нагрузка для базы.

ну это вот если мы действительно просто так эти самые файлы отдаём. а если мы хотим например денежку за них попросить Подмигивающий ? или ещё как затруднить доступ Подмигивающий да притом так, что бы линк каким экзотическим был ? наличие промежуточного звена вполне может позволять как то обрабатывать эти файлики, например watermarks на картинки какие нибудь специфичные накладывать, динамически изменяющиеся Подмигивающий из всех возможных здесь решений база не самое неудобное Подмигивающий
Записан

Не будите во мне зверя, он и так всё время не высыпается

maxposedon
Настоящий гродненец
****

Репутация: +26/-0
Offline Offline

Сообщений: 696


empty

Просмотр профиля
« Ответ #10 : 20 Март 2008, 15:11:32 »

Но таки, есть кучи более удобных средсв для промежуточного уровня.
Да и пока файлы на fs, я могу менять это промежуточный уровень(гибкость).
А хранение в базе - в чистом виде нарушение KISS.
(вариант извлечения файлы из базы в tmp файлик а потом обработка вообще не рассматриваем, слишком не серьёзно тогда хранить в базе).
Записан
VooDoo
Почетный гродненец
*****

Репутация: +89/-1
Offline Offline

Пол: Мужской
Сообщений: 2885


Dum spiro spero

Просмотр профиля WWW Email
« Ответ #11 : 20 Март 2008, 16:42:30 »

понятное дело, что файлы в базе не очень хорошо. Но, если не делать select *, разницы практически не будет. А вот приложением, которое крутится на серваке ходить по файловой системе, вот это точно извращение. Аппликация которая крутится в каком-то контейнере не должна знать что находится вне этого контейнера.
Записан

Are you human? - My body is.
Do you feel pain? - My body does.
..- --- --- -.. --- ---
VP
Гродненец
**

Репутация: +4/-0
Offline Offline

Сообщений: 84


Я люблю Гродненский форум!

Просмотр профиля Email
« Ответ #12 : 20 Март 2008, 17:55:38 »

Цитировать
понятное дело, что файлы в базе не очень хорошо. Но, если не делать select *, разницы практически не будет.
Даже сделав select * разницы ты не увидишь. Таблица содержит только ссылки. Для чтения и записи идут отдельные ф-ции READTEXT, UPDATETEXT, WRITETEXT, PATINDEX и т.д
Записан
Страниц  :   Вверх
  Печать  
 
Перейти в:  

Войти
Войдите, чтобы добавить комментарий

Войдите через социальную сеть

Имя пользователя:
Пароль:
Продолжительность сессии (в минутах):
Запомнить:
Забыли пароль?

Контакт
Powered by MySQL Powered by PHP Мобильная версия
Powered by SMF 1.1.20
SMF © 2006-2024, Simple Machines
Simple Audio Video Embedder
| Sitemap
Valid XHTML 1.0! Valid CSS!
Страница сгенерирована за 0,115 секунд. Запросов: 19.