Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сохранение рисунка в базе данных 
:(
    Опции темы
spawn1984
  Дата 29.3.2005, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 25.2.2005

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



Народ помогите, очень нужно
Мне нужно сохранить в базу данных рисунок
вот код из моей программы..

Код

var
  bs: TStream;
  jpg:TJPegImage;
  begin
  if OpenPictureDialog1.Execute then
  begin
    suiDBImage1.Picture.Graphic.LoadFromFile(OpenPictureDialog1.FileName);
      if suiDBImage1.Picture.Graphic is TJPegImage then
      begin
      form4.ADOQuery1.Edit;
      bs:=form4.ADOQuery1.CreateBlobStream(form4.ADOQuery1.FieldByName('фото'),bmWrite);
      suiDBImage1.Picture.Graphic.SaveToStream(bs);
      bs.Free;
      form4.ADOQuery1.Post;
      end
    else
      if suiDBImage1.Picture.Graphic is TBitmap then
      begin
      jpg:=TJPegImage.Create;
      jpg.CompressionQuality:=100;
      {jpg.PixelFormat:=;}
      jpg.Assign(suiDBImage1.Picture.Graphic);
      jpg.JPEGNeeded;
      form4.ADOQuery1.Edit;
      bs:=form4.ADOQuery1.CreateBlobStream(form4.ADOQuery1.FieldByName('фото'),bmWrite);
      jpg.SaveToStream(bs);
      bs.Free;
      jpg.Free;
      end
    else
     form4.ADOQuery1.FieldByName('фото').Clear;
  end;

Вроде ошибок нет...но при добавлении рисунка выдает сообщение Bitmap Image is no valid
посмотрите пожалуйста код...если найдете какие-то ошибки..пришлите
или если у кого-то есть свой код пришлите для сравнения...
заранее спасибо

Это сообщение отредактировал(а) Alex - 29.3.2005, 15:33
PM MAIL ICQ   Вверх
Vit
Дата 29.3.2005, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 14
Всего: 207



Цитата(spawn1984 @ 29.3.2005, 06:24)
  bs:=form4.ADOQuery1.CreateBlobStream(form4.ADOQuery1.FieldByName('фото'),bmWrite);
      suiDBImage1.Picture.Graphic.SaveToStream(bs);
      bs.Free;


Что ты тут делаешь?

1) Создаёшь поток
2) Загружаешь данные в поток
3) Разрушаешь поток
...

Итого данные берутся и выбрасываются...

Надо:
1. Создаёшь поток
2. Загружаешь в него данные
3. Копируешь данные в поле
4. Сохраняешь изменения таблицы
5. Разрушаешь поток

Добавлено @ 16:03
Примерно так пишется загрузка данных из поля. (Код писал на вскидку...)
Код

bs:=TMemoryStream.create;
TBlobField(form4.ADOQuery1.FieldByName('фото')).saveToStream(bs);
bs.position:=0;
suiDBImage1.Picture.Graphic.LoadFromStream(bs);
bs.Free;



--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0389 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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