Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Картинки в БД [D6, FireBird]


onix ©   (2004-11-03 09:57:00) 

Здравстуйте мастера !
Никогда не приходилось сохранять картинки в БД. Помогите пожалуйста  советом, как сей фокус проделать с помощью TStoredProc.

Заранее спасибо.


onix   (2004-11-03 14:06:00) [1]

>vv_Fran
Blob поле в таблице есть. Процедура которая должна добавить картинку тоже вроде есть. Проблемма, как передать картинку из программы в хранимую процедуру.
Таблица состоит из 2 полей:
 IMAGE BLOB SUB_TYPE 0 SEGMENT SIZE 800,
 ID INTEGER

Процедура имеет вид:
CREATE PROCEDURE UPDATE_PIC (
 ID INTEGER,
 IMAGE BLOB SUB_TYPE 0 SEGMENT SIZE 80
)  AS  
begin
update pic
set image = :image
where id = :id;
end

А вот какой код на писать в программе, чтоб передать в процедуру? Пробовал так :

procedure TFMain.Image2DblClick(Sender: TObject);
var pic : TBitmap;
begin
try
if OpenPicture.Execute then begin
  pic := TBitmap.Create;
  pic.LoadFromFile(OpenPicture.FileName);
  with DM.SPTemp do begin
   Active:=false;
   StoredProcName:='update_pic';
   Params.Clear;
   Params.CreateParam(ftGraphic,'Image',ptInput).SetData(@pic);
   Params.CreateParam(ftInteger,'id',ptInput).AsInteger := TImage(Sender).Tag;
   ExecProc;
   TransCommit;
  end;
  TImage(Sender).Picture.LoadFromFile(OpenPicture.FileName);}
end;
except
 ShowMessage('Не удачное завершение записи');
end;
pic.Free;
end;
И еще несколько вариантов, но эффект =0


vv_fran   (2004-11-03 12:52:00) [2]

Blob поле делаешь. Подробней в Help


Наверх

Титульная страница Поиск, карта сайта Написать письмо