Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как добавить в OLE-поле MDB картинку JPG ? 
V
    Опции темы
Keeper89
Дата 16.7.2009, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



А если убрать  as tblobfield?

Добавлено @ 23:51
Или так попробовать:
Код

var
  BlobField: TBlobField;
begin
...
    BlobField := TBlobField(Table.FieldByName(...));
    Table.Edit;
    BlobField.LoadFromStream(...);
...


Добавлено @ 23:53
Вот еще пример нашел:
Код

procedure TFormadddet.Button15Click(Sender: TObject);
var
  i:integer;
  filename,nomn:string;
  FileStream: TFileStream;
  BlobStream: TStream;
begin
  ADOQuery1.First;
  for i:=0 to ADOQuery1.RecordCount do
  begin
    nomn:=ADOQuery1.FieldByName('codedet').AsString;
    ADOQuery1.Edit;
    {BlobStream := ADOQuery1.CreateBlobStream(ADOQuery1.FieldByName('ris'),bmWrite);
    FileStream := TFileStream.Create('картинки/'+nomn+'.jpg',fmOpenRead or fmShareDenyNone);
    BlobStream.CopyFrom(FileStream,FileStream.Size);
    FileStream.Free;
    BlobStream.Free; }
    filename:='c:/pik/'+nomn+'.jpg';
    image1.Picture.LoadFromFile(filename);
    ADOQuery1.FieldByName('ris').Assign(Image1.Picture);
    ADOQuery1.Post;

    ADOQuery1.Next;
  end;
end;

Но здесь мне кажется в Image он преобразуется в конце концов в BMP.

Это сообщение отредактировал(а) Keeper89 - 16.7.2009, 23:54


--------------------
PM MAIL WWW   Вверх
Romikgy
Дата 16.7.2009, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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



Код

jpg.LoadFromFile('i:\a1.jpg');
Stream := TBlobStream.Create((ADO1.Fields.FieldByName('test') as tblobfield), bmWrite);
jpg.DIBNeeded;
jpg.SaveToStream(Stream);

?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Romikgy
Дата 17.7.2009, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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



а правильнее всего будет так имхо
Код

var
bm: TBitMap;

bm:=TBitMap.create;
jpg.LoadFromFile('i:\a1.jpg');
bm.Assign(jpg);
Stream := TBlobStream.Create((ADO1.Fields.FieldByName('test') as tblobfield), bmWrite);

bm.SaveToStream(Stream);
bm.Free;




--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Данкинг
Дата 17.7.2009, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Romikgy, "Invalid class typecast". (это я про первый пример)

Keeper89, последний пример действительно преобразует в BMP, ибо вылетает та же ошибка, которая на скрине. smile 

Это сообщение отредактировал(а) Данкинг - 17.7.2009, 00:17


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Keeper89
Дата 17.7.2009, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



 smile  smile  smile  smile  smile  smile 
Все варианты уже перебрали...


--------------------
PM MAIL WWW   Вверх
Данкинг
Дата 17.7.2009, 00:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Цитата(Romikgy @  17.7.2009,  01:12 Найти цитируемый пост)
а правильнее всего будет так имхо

Со вторым примером то же. 

Цитата(Keeper89 @  17.7.2009,  01:17 Найти цитируемый пост)
Все варианты уже перебрали... 

Угу, пора спать, утро вечера мудренее. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Keeper89
Дата 17.7.2009, 00:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Может какая проблема с БЛОБ полем в БД?

Добавлено через 1 минуту и 4 секунды
Ого, точно уже половина второго, утром еще подумаю, может примерчик у себя попробую для верности.


--------------------
PM MAIL WWW   Вверх
Данкинг
Дата 17.7.2009, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Вот так вот ничего в БД не пишется, но и ошибок не выдаёт, т.е. уже лучше. smile 
Код

   ADO1.Append;
   jpg := TJpegImage.Create;
   jpg.LoadFromFile('i:\a2.jpg');
   jpg.CompressionQuality := 20;
   jpg.Compress;
   ms := TMemoryStream.Create;
   jpg.SaveToStream(ms);
   (ADO1.FieldByName('test') as tBlobField).LoadFromStream(ms);
   ADO1.Post;


Добавлено через 2 минуты и 11 секунд
Цитата(Keeper89 @  17.7.2009,  01:19 Найти цитируемый пост)
Может какая проблема с БЛОБ полем в БД?

Вот базу прикладываю, вроде там проблем-то быть не может. smile 

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  phbank.rar 6,52 Kb


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
former
Дата 17.7.2009, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


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

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



Данкинг, а подтип и размер поля у тебя какой?
Выдернул рабочий кусок из старого проекта.
Код

var BS: TStream;
      Jpg: TJpegImage;
begin
    BS:=nil;
    Jpg:=TJPegImage.Create;
    Jpg.CompressionQuality:=100;
    Jpg.PixelFormat:=jf24Bit;
    Jpg.LoadFromFile('C:\1.jpg');
    Jpg.JPEGNeeded;
    BS:=TblName.CreateBlobStream(TblName.FieldByName('PutConstruction'), bmWrite);
    Jpg.SaveToStream(BS);
    BS.Free;
    Jpg.Free;
end;


Кстати, тема уже тысячу раз поднималась. Поищи в разделе. Да и в DRKB тоже вроде было.


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Keeper89
Дата 17.7.2009, 01:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Вот, сделал по самому первому коду - все отлично работает. Проект прикрепил. Теперь спать. smile

Это сообщение отредактировал(а) Keeper89 - 17.7.2009, 01:03

Присоединённый файл ( Кол-во скачиваний: 9 )
Присоединённый файл  ___JPEG.rar 355,46 Kb


--------------------
PM MAIL WWW   Вверх
Данкинг
Дата 17.7.2009, 01:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Цитата(former @  17.7.2009,  01:46 Найти цитируемый пост)
Данкинг, а подтип и размер поля у тебя какой?

Какой подтип и размер, там же нет таких параметров вообще. smile 

Цитата(former @  17.7.2009,  01:46 Найти цитируемый пост)
Кстати, тема уже тысячу раз поднималась. Поищи в разделе. Да и в DRKB тоже вроде было. 

Дык, в DRKB не нашёл.

Цитата(Keeper89 @  17.7.2009,  02:02 Найти цитируемый пост)
Вот, сделал по самому первому коду - все отлично работает.

До меня дошло. smile Проблема не в этом, а в DbImage, который лежал на форме - ошибку о невалидном BMP выдавал именно он. smile  smile Правда, почему при этом не происходило добавления в таблицу - всё равно непонятно. smile 

Цитата(Keeper89 @  17.7.2009,  02:02 Найти цитируемый пост)
Теперь спать.

Да, наверное всё же...




--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
former
Дата 17.7.2009, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


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

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



Цитата(Данкинг @  17.7.2009,  01:25 Найти цитируемый пост)
Проблема не в этом, а в DbImage, который лежал на форме - ошибку о невалидном BMP выдавал именно он.

Правильно, стандартный DbImage глючит при работе с jpg. Используй альтернативу.


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Данкинг
Дата 17.7.2009, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Цитата(former @  17.7.2009,  15:11 Найти цитируемый пост)
Используй альтернативу. 

Я обычный TImage буду использовать. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


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

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


 




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


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

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