Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2012, 19:35   #1
Anubys
Форумчанин
 
Регистрация: 08.05.2010
Сообщений: 177
По умолчанию Работа с BLOB полем

Загрузил в табличку изображения, но его компонент DBImage наотрез отказался показывать, а воспользовался утилитой MySQLQueryBrowser он его видит и корректно отображает, значит лаже при аставци инфы в таблицу не было
Скажите в чем проблема
Код загрузки изображения в таблицу
Код:
TFileStream *fstream = new TFileStream(this->path, fmShareDenyNone);

	this->ADOQuery1->Parameters->ParamByName("insert")->LoadFromStream(fstream, ftBlob);
	this->ADOQuery1->ExecSQL();

Последний раз редактировалось Anubys; 22.03.2012 в 19:41.
Anubys вне форума Ответить с цитированием
Старый 22.03.2012, 20:09   #2
Drugnir
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 262
По умолчанию

Лучше бы через LoadFromFile. Может быть не все байты записываются, судя по ошибке. bmp он хорошо отображает, а с jpeg не очень, видел на форуме
http://www.programmersforum.ru/showthread.php?t=9091
http://programmersforum.ru/showthrea...t=11368&page=2

Последний раз редактировалось Drugnir; 22.03.2012 в 20:23.
Drugnir вне форума Ответить с цитированием
Старый 22.03.2012, 20:19   #3
Anubys
Форумчанин
 
Регистрация: 08.05.2010
Сообщений: 177
По умолчанию

Пробовал грузить из файла все равно говорит, что неправильное изображение
Anubys вне форума Ответить с цитированием
Старый 22.03.2012, 20:27   #4
Drugnir
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 262
По умолчанию

А код загрузки в DBImage какой? Файл bmp?
Drugnir вне форума Ответить с цитированием
Старый 22.03.2012, 20:35   #5
Anubys
Форумчанин
 
Регистрация: 08.05.2010
Сообщений: 177
По умолчанию

Виноват не bmp, но мне нужна поддержка 3-х форматов, надо что-то придумать. В принципе выход есть но без загрузки файла в таблицу
Anubys вне форума Ответить с цитированием
Старый 22.03.2012, 20:38   #6
Drugnir
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 262
По умолчанию

Что бы работать в DBImage, нужно будет конвертировать в bmp. Или выбрать другой компонент. Я бы взял другой компонент для работы с изображением. А в BLOB - поле загружать можно любую последовательность байт, DBImage не обязателен. Например, выгружать файл из BLOB в TImage, работать с ним, а потом этот файл обратно. Для каких целей нужен был DBImage?

Последний раз редактировалось Drugnir; 22.03.2012 в 20:44.
Drugnir вне форума Ответить с цитированием
Старый 22.03.2012, 21:37   #7
Anubys
Форумчанин
 
Регистрация: 08.05.2010
Сообщений: 177
По умолчанию

Для просмотра jpj, gif, bmp изображений.
Какой тогда метод использовать для выгрузки BLOB поля в TImage?
Anubys вне форума Ответить с цитированием
Старый 23.03.2012, 00:05   #8
Drugnir
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 262
По умолчанию

builder'a нет, по-этому пишу примерно
Код:
#include <jpeg.hpp>
TStream *stream1 = ADOTable1->CreateBlobStream(ADOTable1->FieldByName("My_field"),bmRead);
TJPEGImage *image = new TJPEGImage;
image->LoadFromStream(stream1);

Image1->Picture->Assign(image); //отображение на TImage
что-то вроде этого.

c gif тут не подскажу, нужны библиотеки. И еще, мне кажется лучше хранить название файла или его расширение в соседнем поле, чтоб знать каким методом выгружать, универсального метода вроде бы нет. Хотя можно поискать компоненты, которые работают со всеми форматами.

Интересная ссылка, хоть и на дельфи.
http://delphiworld.narod.ru/base/dbe...ob_fields.html

Последний раз редактировалось Drugnir; 23.03.2012 в 00:25.
Drugnir вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление из базы с BLOB-полем artemavd БД в Delphi 3 03.03.2012 22:12
Работа с текстовым полем BoT_T Win Api 1 11.12.2010 01:36
Работа с полем записей. Pascal zevs116 Помощь студентам 0 24.11.2010 21:31
Ошибка работы с blob полем, в похожем проекте все работает Lokos БД в Delphi 6 25.02.2010 08:17
Проблема с Blob полем Constellation БД в Delphi 6 24.01.2008 18:58