Главная страница
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.025 c
2-1123945723
Саша У
2005-08-13 19:08
2005.09.25
Как правильно сделать одинаковые обработчики для нескольких компо


1-1125497772
Карелин Артем
2005-08-31 18:16
2005.09.25
Константа - массив записей. Как делать?


14-1125893012
vajo
2005-09-05 08:03
2005.09.25
Вирус: Trojan-PSW.win32.vipgsm.ap


1-1125822158
RayGun
2005-09-04 12:22
2005.09.25
QuickReport или экспорт в Excel


3-1123678151
Ega23
2005-08-10 16:49
2005.09.25
output-параметры в рекурсивных выборках