Поиск:

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


Yersinia pestis
****


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

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



Пример для BMP нашёл:
Код

(ADOTable1.Fields.FieldByName('поле') as tblobfield).LoadFromFile('c:\1.bmp');

А для файлов .jpg ?  smile 


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


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


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

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



также


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

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


Yersinia pestis
****


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

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



Цитата(Romikgy @ 16.7.2009,  22:54)
также

user posted image


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


Эксперт
****


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

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



Вот так можно:
Код

procedure SaveJpegToTable(Table: TADOTable; PicField:TBlobField; sPicPath: string);
{
Usage:

  SPicFileName := 'C:\!gajba\cdcovers\cdcover1.jpg';
  SaveJpegToTable(ADOTable1, ADOTable1Picture, SPicFileName);
}
var
  fS  : TFileStream;
begin
  fs:=TFileStream.Create(sPicPath, fmOpenRead);
  try
   Table.Edit;
   PicField.LoadFromStream(fs);
   Table.Post;
  finally
   fs.Free;
  end;
end;

http://delphi.about.com/library/code/ncaa030601a.htm

Добавлено через 4 минуты и 33 секунды
Вот еще хороший мануал на эту тему: http://mhs.stiki.ac.id/04113605/ReqForum/d...ge%20Delphi.doc.


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


Yersinia pestis
****


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

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



Непонятно, как её вызывать:
Код

SaveJpegToTable(ADOTable1, ADOTable1Picture, SPicFileName);

ADOTable1Picture - это каким образом здесь указать название поля?!


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


Эксперт
****


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

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



Данкинг, да наверное таким же:
Код

SaveJpegToTable(ADOTable1, ADOTable1.Fields.FieldByName('поле'), 'c:\1.jpg');


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


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


Yersinia pestis
****


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

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



Если так, то та же ошибка вылезает:
Код

SaveJpegToTable(ADOTable1, (ADOTable1.fieldbyname('test') as tblobfield), SPicFileName);


А если 
Код

SaveJpegToTable(ADOTable1, ADOTable1.fieldbyname('test'), SPicFileName);

То вылезает ошибка "incompatible types: TBlobField and TField".

Это сообщение отредактировал(а) Данкинг - 16.7.2009, 22:49


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


Эксперт
****


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

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



Цитата(Данкинг @  16.7.2009,  23:47 Найти цитируемый пост)
Если так, то та же ошибка вылезает:

Какая?


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


Yersinia pestis
****


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

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



Цитата(Keeper89 @  16.7.2009,  23:48 Найти цитируемый пост)
Какая? 

Которая на скриншоте, о неверном формате BMP.


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


Эксперт
****


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

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



Странно должно работать...

А если так:
Код

procedure TForm1.btnSaveSQLClick(Sender: TObject);
var
  Stream: TADOBlobStream;
begin
  {ADOConnection1.Execute('delete from dbo.Categories where ' + '(CategoryName = ''Test'')');}
  ADODataset1.active := true;
  ADODataset1.Insert;
  {ADODataSet1CategoryName.AsString := 'Test';
  ADODataSet1Description.asstring := lowercase(edit1.text);}
  Stream := TADOBlobStream.Create(ADODataSet1Picture, bmWrite);
  if Image1.Picture.Graphic is TJPEGImage then
    TJPEGImage(Image1.Picture.Graphic).SaveToStream(Stream)
  else
    Image1.Picture.Bitmap.SaveToStream(Stream);
  Stream.Free;
  ADODataset1.Post;
  ADODataset1.active := false;
end;


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


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


Yersinia pestis
****


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

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



Цитата(Keeper89 @  17.7.2009,  00:03 Найти цитируемый пост)
А если так:

Снова та же ошибка, что на скрине. smile  Т.е. код пришлось подправить, но суть та же:
Код

ado1.Append;
jpg:=TJPEGImage.Create;
jpg.LoadFromFile('i:\a1.jpg');
Stream := TADOBlobStream.Create(ADO1.Fields.FieldByName('test'), bmWrite);
jpg.SaveToStream(Stream);
Stream.Free;
ado1.Post;


Добавлено через 7 минут и 46 секунд
И отсюда  пример тоже не работает с той же ошибкой.


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


Эксперт
****


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

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



Заменить TADOBlobStream на TBlobStream не поможет?


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


Yersinia pestis
****


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

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



Цитата(Keeper89 @  17.7.2009,  00:27 Найти цитируемый пост)
Заменить TADOBlobStream на TBlobStream не поможет? 

Он класса TBlobStream вообще не находит, т.е. "undeclared indenifier: TBlobStream".


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


Эксперт
****


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

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



Цитата(Данкинг @  17.7.2009,  00:30 Найти цитируемый пост)
Он класса TBlobStream вообще не находит, т.е. "undeclared indenifier: TBlobStream". 

Надо подключить модуль DBTables.

Вот еще пример: http://support.microsoft.com/kb/326502 - на VB.NET.

Добавлено через 3 минуты и 1 секунду
И еще: http://www.delphi3000.com/articles/article_1267.asp?SK=


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


Yersinia pestis
****


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

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



Цитата(Keeper89 @  17.7.2009,  00:32 Найти цитируемый пост)
Надо подключить модуль DBTables.

"Invalid class typecast":
Код

var p,pp:string;
Stream: TBlobStream;
jpg:TJPEGImage;
begin
...
ado1.Append;
jpg:=TJPEGImage.Create;
jpg.LoadFromFile('i:\a1.jpg');
Stream := TBlobStream.Create((ADO1.Fields.FieldByName('test') as tblobfield), bmWrite);
jpg.SaveToStream(Stream);
Stream.Free;
ado1.Post;

(но тип поля в таблице - "поле объекта", всё верно)


--------------------
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.0919 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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