Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.18;
Скачать: 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 вся ветка

Текущий архив: 2006.06.18;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.047 c
15-1148363456
Хельг
2006-05-23 09:50
2006.06.18
Basic в OpenOffice


15-1148379401
simmoril
2006-05-23 14:16
2006.06.18
Помогите решить задачу


2-1149146091
new_user
2006-06-01 11:14
2006.06.18
Пункт меню


2-1149252701
AlexanderMS
2006-06-02 16:51
2006.06.18
Извлечение файла из несжатого архива.


2-1149134771
Atanas
2006-06-01 08:06
2006.06.18
Код выполняемый сразу после запуска