freepascal.ru • Просмотр темы - DBImage загрузить/обновить картинку из файла
 

DBImage загрузить/обновить картинку из файла

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

DBImage загрузить/обновить картинку из файла

Сообщение SeventhSon » 25.07.2018 08:46:13

Здравствуйте.

Пишу программу/БД с картинками. Крайняя версия Lazarus, Zeos, Postgres.
В БД есть поле photo_blob типа bytea. С помощью sqlmanager загрузил в некоторые блобы картинки,
на перемещении по DBGrid они отображаются.
Не могу загрузить несуществующие/обновить загруженные.
Пробовал как здесь
viewtopic.php?f=5&t=10331&p=86304&hilit=dbimage#p86304
Код: Выделить всё
Pic:=TPicture.Create;
Pic.LoadFromFile(OpenDialog.FileName);
PatentImage.Picture.Assign(Pic);
Pic.Free;

не работает.
Пробовал
Код: Выделить всё
DBImage1.Picture.LoadFromFile(OpenDialog1.FileName);
DBImage1.Change;


Как же загрузить в DBImage блоб картинку?
SeventhSon
новенький
 
Сообщения: 47
Зарегистрирован: 17.02.2009 01:57:17

Re: DBImage загрузить/обновить картинку из файла

Сообщение Снег Север » 25.07.2018 08:56:01

SeventhSon писал(а):Как же загрузить в DBImage блоб картинку?
Грузить надо не в DBImage, а в поле таблицы БД. Через blob stream. Примеры из делфи годятся, в гугле их мильон. А в DBImage автоматом отобразится после refresh.
Аватара пользователя
Снег Север
энтузиаст
 
Сообщения: 1119
Зарегистрирован: 27.11.2007 16:14:47

Re: DBImage загрузить/обновить картинку из файла

Сообщение SeventhSon » 25.07.2018 09:31:44

Спасибо, поищу. Но вообще решил что пихать картинки в БД не очень умно,
заменил поле блоб на путь к файлу и по OnClick по DBGrid подгружаю Image1.Picture.LoadFromFile
SeventhSon
новенький
 
Сообщения: 47
Зарегистрирован: 17.02.2009 01:57:17

Re: DBImage загрузить/обновить картинку из файла

Сообщение Vadim » 25.07.2018 10:19:43

SeventhSon писал(а):Спасибо, поищу. Но вообще решил что пихать картинки в БД не очень умно,

Я когда делал программу по работе с патентами, у нас был запрет на возможную шару для изображений патентов. Так что пришлось их запихивать в БД. Получилась 200 ГБ база, но на скорость выборки повлияло не сильно. Даже подрузка сотни строк из БД с картинками клиентом не занимает больше 5... 10 сек. на 100 МБ сетке.
Vadim
долгожитель
 
Сообщения: 2745
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: DBImage загрузить/обновить картинку из файла

Сообщение Снег Север » 25.07.2018 12:48:08

SeventhSon писал(а):Но вообще решил что пихать картинки в БД не очень умно,
Это зависит от задач. У меня на работе в БД прекрасно хранятся и сканы документов, и pdf файлы. Размеры не жмут. Разве что, можно их архивировать перед сохранением, что тоже не проблема, компоненты для архивации общедоступны.
Аватара пользователя
Снег Север
энтузиаст
 
Сообщения: 1119
Зарегистрирован: 27.11.2007 16:14:47

Re: DBImage загрузить/обновить картинку из файла

Сообщение java73 » 26.07.2018 14:15:14

Блин, я доже делал (и поддерживаю) корпоративную приложуху с патентами и товарными знаками))) могу поделиться своими способами работы с картинками
java73
постоялец
 
Сообщения: 230
Зарегистрирован: 21.11.2013 09:08:10

Re: DBImage загрузить/обновить картинку из файла

Сообщение wadman » 26.07.2018 16:59:53

Vadim писал(а):Даже подрузка сотни строк из БД с картинками клиентом не занимает больше 5... 10 сек. на 100 МБ сетке.

Если сделано по уму, то блобы грузятся только при обращении к ним. То есть это не должно в целом влиять на производительность.
SeventhSon писал(а):заменил поле блоб на путь к файлу и по OnClick по DBGrid подгружаю Image1.Picture.LoadFromFile

Круто... С базой только один человек и локально работает?
wadman
новенький
 
Сообщения: 90
Зарегистрирован: 18.10.2016 15:54:28

Re: DBImage загрузить/обновить картинку из файла

Сообщение Снег Север » 26.07.2018 22:51:55

wadman писал(а):Если сделано по уму, то блобы грузятся только при обращении к ним. То есть это не должно в целом влиять на производительность.
Именно. Во "взрослых" приложениях :D обычно делают небольшую иконку для блоба и только ее и показывают в полях/гридах. А сам блоб грузят только при запросах на детальный просмотр/сохранение копии и печати.
Аватара пользователя
Снег Север
энтузиаст
 
Сообщения: 1119
Зарегистрирован: 27.11.2007 16:14:47


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 6

Рейтинг@Mail.ru