![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Картинки в БД [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