Вниз
Скачать: CL | DM;

BLOB not opened   Найти похожие ветки 

← →
D@Nger ©   (2006-05-31 07:29) [0]

Здравствуйте мастера. Пытаюсь все запихать изображение JPG в BLOB поле и делаю это следующим образом:
 
    dbimage1.Picture.LoadFromFile(opendialog1.FileName);
    fmain.sotrud_tbl.Edit;
    bs:=TBlobStream.Create(fmain.sotrud_tbl.fieldbyname("foto") as    TblobField,bmWrite);
    dbimage1.Picture.Graphic.SaveToStream(bs);
    fmain.sotrud_tbl.Post;
    bs.Free;
Выходит сообщение об ошибке "BLOB not opened" , а как его открыть ?


← →
Сергей М. ©   (2006-05-31 09:08) [1]

SourceStream: TStream;
TargetStream: TBlobStream;

SourceStream := TFileStream.Create(opendialog1.FileName, fmOpenRead);

fmain.sotrud_tbl.Edit;

TargetStream := fmain.sotrud_tbl.CreateBlobStream(fmain.sotrud_tbl.fieldbyname("foto") as TBlobField, bmWrite);

TargetStream.CopyFrom(SourceStream);

fmain.sotrud_tbl.Post;

SourceStream.Free;

TargetStream.Free;


← →
D@Nger ©   (2006-05-31 09:15) [2]

Большое спасибо!


← →
D@Nger ©   (2006-05-31 09:54) [3]

Извените конечно Сергей М., но что-то у меня всё равно не получается.  
TargetStream := fmain.sotrud_tbl.CreateBlobStream(fmain.sotrud_tbl.fieldbyname("foto") as TBlobField, bmWrite);

TargetStream и вторая половина разных типов...
я уже и так и сяк пробовал ничего не выходит, неужели это так сложно ?


← →
Сергей М. ©   (2006-05-31 09:59) [4]

TargetStream: TStream;

p.s.
Вообще-то в станд.справке есть пример использования TDataSet.CreateBlobStream().
Попробуй догадайся с трех раз, для кого писана Борландом эта справка  ..


← →
D@Nger ©   (2006-05-31 10:09) [5]

а готовый пример есть ?


← →
Сергей М. ©   (2006-05-31 10:15) [6]

Есть, в справке !


← →
D@Nger ©   (2006-05-31 12:03) [7]

После долгих мучений вроде получилось поместить JPП в BLOB поле.
Правильно ли я сделал ?:

var  b:TBlobField;
begin
  if opendialog1.Execute then
  begin
    fmain.sotrud_tbl.Edit;
    b:=fmain.sotrud_tbl.fieldbyname("foto") as TblobField;
    b.LoadFromFile(opendialog1.FileName);
    fmain.sotrud_tbl.post;
  end;
end;

Теперь не могу считать из BLOB поля картинку в Image1:Timage;
Подскажите кто знает !


← →
Сергей М. ©   (2006-05-31 12:25) [8]


> не могу считать из BLOB поля картинку в Image1:Timage


Потому что Timage не работатает с JPG-форматом.

см. справку к TJPEGImage


← →
D@Nger ©   (2006-05-31 14:57) [9]

Все сделал! Большое вам СПАСИБО Сергей М. Для остальных программеров столкнувшихся с этой проблемой пишу код считывания JPG из BLOB поля в Timage:

var bs:TBlobStream;
   jp:TJPEGIMAGE;
begin
 Bs := TBlobStream.Create(fmain.sotrud_tbl.fieldbyname("foto") as TblobField, bmRead);
 jp:=TJPEGImage.Create;
 jp.LoadFromStream(bs);
 jp.DIBNeeded;
 image1.Picture.Graphic:=jp;
 jp.Free;
 bs.Free;
end;


← →
D@Nger ©   (2006-05-31 14:59) [10]

Тема закрыта



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.024 c
3-1145546774
s_t_d
2006-04-20 19:26
2006.06.18
IBExpert. Экспорт данных в Excel


2-1148800931
Хочу_все_знать
2006-05-28 11:22
2006.06.18
Как очистить файл который используется


2-1148942125
alec_sey
2006-05-30 02:35
2006.06.18
Массивы


2-1148571234
Golik
2006-05-25 19:33
2006.06.18
Как сжать exe-шник


2-1148988920
Steep
2006-05-30 15:35
2006.06.18
Цвет точки




   Наверх