Components for Delphi and C++ Builder.

Перейти в английский форум
Перейти на EhLib.com
Текущее время: 27 апр 2024, 14:29

Часовой пояс: UTC




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
СообщениеДобавлено: 22 июн 2022, 18:48 
Не в сети

Зарегистрирован: 15 мар 2018, 15:31
Сообщений: 48
Надо срочно решить задачку по отображению картинок из Blob поля MySql в ячейках DbGridEh.
Делаю как обычно TZQuery+Dataset+DbGridEh. В DbGridEh ставлю DbGridEh.DrawGraphicData = True.
Не работает. - Отображает текст (Blob).
Можно ли таким простым методом отобразить bmp из базы в ячейке грида. Без MemTable и др. как в примере с "FishFact"...
Примеров рабочих не нашел.
Спасибо.


Вложения:
2022-06-22_21-44-23.png
2022-06-22_21-44-23.png [ 2.58 KiB | Просмотров: 1090 ]
Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 22 июн 2022, 20:30 
Не в сети

Зарегистрирован: 21 дек 2011, 18:48
Сообщений: 1549
Добрый день.

Чтобы указать Гриду что Blob поле содержит именно графику, необходимо чтобы поле было типа TGraphicField
или BlobField.BlobType = ftGraphic.
Вы можете установить BlobType после открытия ДатаСета.

_________________
Best regards
EhLib support Team


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 23 июн 2022, 03:04 
Не в сети

Зарегистрирован: 15 мар 2018, 15:31
Сообщений: 48
Создаю форму и открываю датасет.
frm_listCases := Tfrm_listCases.Create(application);
frm_listCases.qryDialog.SQL.Text := 'select * from uslug_group where length(img)>0 order by name'; //Выбираю где Blob не пустое.
frm_listCases.qryDialog.Open;
frm_listCases.qryDialog.FieldByName('img').SetFieldType(ftGraphic); //Устанавливаю тип поля.
frm_listCases.qryDialog.FieldByName('img_photo_name').SetFieldType(ftString);


В таблице DrawGraphicData =true;
ShowImageAndText = true;

Все комбинации перепробовал, в том числе в датасете вручную создал поле img типа qryDialogimg: TGraphicField;
Картинки в базе у меня разношерстные, в том числе bmp, jpeg, png... Но они нормально отображаются в TDBImage привязанному к этому датасету.
В ячейке же таблицы отображается только один рисунок я даже не помню какого типа он был (bmp или png) - я его вставлял со скриншота в Яндекс браузере через буфер обмена прямо в blob поле через TMemoryStream. И его тип я не знаю.
Что то мне кажется что туда класть нужно только одинаковые и "правильные" картинки и тогда это должно работать. А если так, то мне это не подходит и я буду использовать отображение картинок не в DBGridEh а в чем нибудь другом.
Вопрос:
DBGridEh не способен отображать все типы картинок?
Какие есть мнения и знания?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 23 июн 2022, 03:18 
Не в сети

Зарегистрирован: 21 дек 2011, 18:48
Сообщений: 1549
Добрый день.

Установите свойство DBGridEh.IncludeImageModules чтобы подключить модули для отображения картинок в формате Jpeg, GIF, PNG.

Если в БД присутствуют картинки в других форматах, то необходимо писать самому или искать дополнительные библиотеки для отображения картинок в этих форматах.

_________________
Best regards
EhLib support Team


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 23 июн 2022, 04:08 
Не в сети

Зарегистрирован: 15 мар 2018, 15:31
Сообщений: 48
Спасибо. Ничего не помогает. Буду использовать что то другое.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 28


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB