Главная страница
    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.46 MB
Время: 0.012 c
1-1147354569
wisardo
2006-05-11 17:36
2006.06.18
Иконка экзешника.


2-1148196813
Belorus
2006-05-21 11:33
2006.06.18
Список процедур в библиотеке


3-1145597273
Alexey V.
2006-04-21 09:27
2006.06.18
Выявление дублированных записей


2-1148980350
duncat
2006-05-30 13:12
2006.06.18
Распечатать текст из Memo


15-1148361182
Ega23
2006-05-23 09:13
2006.06.18
С Днём рождения! 23 мая





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский