Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.25;
Скачать: CL | DM;

Вниз

Картинка в поле БД   Найти похожие ветки 

 
leha   (2005-08-12 10:14) [0]

Подскажите пожалуйста, если кто знает, как загрузить картинку в поле БД, и как считать её оттуда. Для работы с базой использую ADO.


 
rayrom ©   (2005-08-12 10:33) [1]

Во простой пример:
BLOBFIELD как BITMAP

Сохраняем Bitmap в поле dbase с именем Icon. Icon представляет собой двоичное Blob-поле.
   procedure ....
var IconStream : TMemoryStream;
..
..
begin

.
.
IconStream := TMemoryStream.Create;
Image1.picture.icon.savetostream(IconStream);
(Table1.fieldbyname("Icon") as TBlobField).LoadFromStream(IconStream);
Table1.post;
IconStream.Free;
.
.
end;


** Читаем Bitmap в Timage из поля dbase с именем Icon.
   procedure .....
var IconStream : TMemoryStream;
..
..
begin

.
.
IconStream := TMemoryStream.Create;
(Table1.fieldbyname("Icon") as TBlobField).SaveToStream(IconStream);
{что бы что-нибудь записать, необходимо установить позицию потока в ноль!}
IconStream.Position := 0;
appointment.iconimage.picture.icon.loadfromstream(iconstream);
IconStream.Free;
end;  

Надеюсь это поможет, поскольку найти информацию в справочной системе по этой теме практически невозможно. Чтобы сделать это, я перепробовал множество способов. Я пробовал использовать TBlobField и TBlobStream, но они не смогли мне помочь (может быть из-за убогой документации borland?).

ЗЫ: Взято из Кулиба2000.
ЗЫЫ: В этом примере есть одна ошибка, если найдеш лучше поймеш что к чему!!! ;)


 
Desdechado ©   (2005-08-12 11:38) [2]

> TBlobField и TBlobStream не смогли мне помочь (может быть из-за убогой документации borland?)
документация нормальная там
а вот с пониманием ее явно проблемы
лучше разбираться на примерах, а не плеваться
var
 oS: TStream;
 oJPG: TJPEGImage;
begin
 oS := qryGraf.CreateBlobStream( qryGraf.FieldByName( "PICT_BLOB" ), bmRead );
 try
   if( oS.Size > 0 ) then begin
     case( cExt[ 1 ] ) of
       "B":
         Image1.Picture.Bitmap.LoadFromStream( oS );
       "I":
         Image1.Picture.Icon.LoadFromStream( oS );
       "J":
         begin
           oJPG := TJPEGImage.Create;
           oJPG.LoadFromStream( oS );
           oJPG.DIBNeeded;
           Image1.Picture.Bitmap.Assign( oJPG );
           oJPG.Free;
         end;
       "E", "W":
         Image1.Picture.Metafile.LoadFromStream( oS );
     end; // case
   end; // if( BlobSize )
 finally
   os.Free;
 end;


 
rayrom ©   (2005-08-12 12:17) [3]

2 Desdechado
Надо ЗЫ внимательнее читать, тан написано что весть текст примера с комментариями взято из Кулибы 2000!!!



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

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

Наверх




Память: 0.47 MB
Время: 0.028 c
14-1125646228
ocean
2005-09-02 11:30
2005.09.25
Западный человек законопослушен?


2-1124186969
Пантелеев Иван
2005-08-16 14:09
2005.09.25
Работа с реестром


1-1125775015
xayam
2005-09-03 23:16
2005.09.25
Многострочная палитра


3-1123741847
DelphiN!
2005-08-11 10:30
2005.09.25
Реально ли удаляються данные из таблиц FB


14-1125570789
dr Tr0jan
2005-09-01 14:33
2005.09.25
Хранение строки в памяти