|
#1
|
|||
|
|||
blob поле в image
Есть mdb база, доступ через ado , есть поле типа Ole , подскажите плз как сохранять в базу картинки и отображать их на форме.
когда пробовал отображать картинку из поля разными способами возникает ошибка |
#2
|
||||
|
||||
Копай в сторону метода Assign
|
#3
|
|||
|
|||
пробовал так
adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.Text:='select picture from pictures where id=1'; adoquery1.Open; if not adoquery1.IsEmpty then image1.Picture.Bitmap.Assign(adoquery1.FieldByName ('picture')); |
#4
|
|||
|
|||
Я использовал TDBImage. Буду очень рад, если помогло
// Процедура добавления фотографии в базу
procedure TfrmAddUs.btnPicEditClick(Sender: TObject); begin if OpenPictureDialog1.execute then DBImage1.Picture.LoadFromFile(OpenPictureDialog1.f ilename); DM.aqrUs.Edit; TBlobField(DM.aqrUs.FieldByName('FOTO')).LoadFromF ile(OpenPictureDialog1.FileName); DM.aqrUs.Post; end; // Процедура показа фотографии procedure TfrmMain.ShowPhoto; var Bitmap: TBitmap; BS: TStream; begin Bitmap := nil; BS := nil; frmAddUs.PageControl1.ActivePageIndex := 0; try BS:= DM.aqrUs.CreateBlobStream(DM.aqrUs.FieldByName('FO TO'), bmRead); Bitmap:= TBitmap.Create; Bitmap.LoadFromStream(BS); frmAddUs.DBImage1.Picture.Graphic:= Bitmap; finally Bitmap.Free; BS.Free; end; end; // Данные сотрудника procedure TfrmMain.tbtUsOptClick(Sender: TObject); begin frmAddUs := TfrmAddUs.Create(Application); frmAddUs.Label7.Caption := DM.aqrUs.FieldByName('ID_US').AsString; frmAddUs.Caption := ' Свойства: '+DM.aqrUs.FieldByName('Last_Name').Value+ ' '+DM.aqrUs.FieldByName('First_Name').Value; ShowPhoto;// Используем процедуру показа фотографии. if frmAddUs.ShowModal = mrOk then begin if DM.aqrUs.Modified then DM.aqrUs.Post; end; frmAddUs.Free; end; |
#5
|
|||
|
|||
Еще кое-что.
Забыл сказать, что использовать надо .bmp изображения.
Использование jpeg, тоже не проблема, но это другая тема. |