Вниз
Скачать: 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 вся ветка

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



Память: 0.46 MB
Время: 0.024 c
4-1122831037
Dust
2005-07-31 21:30
2005.09.25
как в делфи получить кол-во тактов процессора прошедших от старта


1-1125391752
nikolas
2005-08-30 12:49
2005.09.25
Пошаговое тестирование DLL


14-1125355510
KilkennyCat
2005-08-30 02:45
2005.09.25
http://delphi84.valuehost.ru


1-1125373161
Артем К.
2005-08-30 07:39
2005.09.25
Подскажите, пожалуйста, как перевести дату и время в


4-1122223901
Regis__
2005-07-24 20:51
2005.09.25
Создать образ диска




   Наверх