Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запись массива в mysql, Запись массива в mysql 
:(
    Опции темы
Alexey68
Дата 27.2.2017, 01:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Alexey
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 10.4.2013

Репутация: нет
Всего: нет



Приветствую Всех!
Столкнулся  с проблемой сохранения массива байт в поле (blob) базы mysql.
Необходимо файл (бинарный) записать (его) в поле.
Размер небольшой, использую MySql Api.
Может быть через потоки?:
TFileStream* stream=new TFileStream("c:\\1.bin",fmOpenReadWrite|fmShareExclusive);
stream->Seek(0,soFromBeginning);
.....
Прошу Вашей помощи.

Это сообщение отредактировал(а) Alexey68 - 27.2.2017, 01:01
PM MAIL   Вверх
_zorn_
Дата 28.2.2017, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 21.8.2007

Репутация: нет
Всего: 12



Ну для начала это вообще плохая идея хранить файлы в базе. 
В ЛЮБОЙ. 
Сколько раз пробовал, но находил более лучшее решение.
Может и не спроста вас ВСЕЛЕННАЯ предостерегает ?  smile 
PM MAIL   Вверх
Alexey68
Дата 28.2.2017, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Alexey
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 10.4.2013

Репутация: нет
Всего: нет



Цитата(_zorn_ @  28.2.2017,  17:13 Найти цитируемый пост)
Сколько раз пробовал, но находил более лучшее решение.

Сейчас остановился на том что пишу путь (в поле database) и храню в папке файлы, а какие ещё решения?

Это сообщение отредактировал(а) Alexey68 - 28.2.2017, 18:13
PM MAIL   Вверх
borisbn
Дата 1.3.2017, 09:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: нет
Всего: 135



Цитата(_zorn_ @  28.2.2017,  17:13 Найти цитируемый пост)
Ну для начала это вообще плохая идея хранить файлы в базе. 

Объясните, пожалуйста, почему?


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
_zorn_
Дата 3.3.2017, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 21.8.2007

Репутация: нет
Всего: 12



Цитата(borisbn @  1.3.2017,  16:01 Найти цитируемый пост)
Объясните, пожалуйста, почему? 

Да легко. 
Прочитать файл с диска (по указанному пути) намного дешевле по ресурсам чем выдёргивать из многогигобайтной базы например. 
В базе его еще надо найти... 
Да, искать будет база, но не удивляйтесь если вдруг все ляжет )
Короче проще изначально пути там хранить.
Лучшего решения нет.
И couchdb с аттачами не алё. 
По старинке - статикой  smile 

Это сообщение отредактировал(а) _zorn_ - 3.3.2017, 19:48
PM MAIL   Вверх
borisbn
Дата 4.3.2017, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: нет
Всего: 135



_zorn_

I. Чтобы прочитать данные из файла нужно:
1) найти в БД запись (например по дате/времени)
2) вычитать из БД в память имя файла
3) найти этот файл на диске
4) открыть файл
5) прочитать данные из файла в память

Чтобы прочитать данные из БД нужно:
1) см. п. 1 выше
2) прочитать данные из БД в память

Ничего не напрягает?

II. Если требуется забэкапить БД на одной машине и развернуть на другой, как Вы думаете, какой способ хранения удобнее?

III. Как быть, если БД находится на одном компьютере, а клиентская программа - на другом?
Можно, конечно, держать в БД сетевые пути к фалам (a la \\server\share\path\to\file), но как быть, если компьютер с сервером БД на Windows, а клиент на Linux или наоборот?
Есть, конечно, решения, но как Вы думаете, будут ли они быстрее, чем хранить данные в blob'ах?

IV. Приходите, пожалуйста, сюда в следующий раз с цифрами. Типа: Я протестировал 4 варианта: MySql и PostreSQL с файлами и с блобами.
Вот времена: ... ... ... ... Съел, borisbn? Или "простите, был не прав, вспылил"  smile 

Схватка милого кота со злобным инопланетянином ))
user posted image

Это сообщение отредактировал(а) borisbn - 4.3.2017, 09:29


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах.

Благодарим за понимание.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Базы данных | Следующая тема »


 




[ Время генерации скрипта: 0.1190 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.