Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как прочитать формат JPEG из SQLServer 2000 [D7, MSSQL, MS SQL Server]


JurMax ©   (2002-11-18 20:28:00) 

Написал приложение на Delphi-6. БД - на SQL Server 2000. Связь через ADO.
Картинки формата bmp вставляются и читаются без проблем. Однако картинки другого формата, например jpg прочитать не могу.
Пробовал написать процедуру(см. ниже) - не работает, выдает ошибку. Через Access графика любого формата читается и записывается в БД без замечаний.

procedure TDataModule1.ADODataSet1AfterScroll(DataSet: TDataSet);
var
Bitmap : TBitmap;
BS : TADOBlobStream;
begin
try
BS:=TADOBlobStream.Create(ADODataSet1_foto, bmRead);
BS.Seek(78, soFromBeginning); //пропускаем заголовок памяти OLE
Bitmap:=TBitmap.Create; //создаем растровое изображение
Bitmap.LoadFromStream(BS); //загружаем графическое изображение (фото) из потока
Form1.DBImage1.Picture.Graphic:=Bitmap; //отображаем фото
// освобождаем память
finally
Bitmap.Free;
BS.Free;
end; //try }
end; // procedure TDataModule1.ADODataSet1AfterScroll(DataSet: TDataSet);


Как прочитать формат JPEG из SQLServer 2000 в приложение, написанное на Delphi 6


iNew   (2002-11-19 07:43:00) [1]

DbImage не поддеоживает JPEG.


shiling   (2002-11-19 06:49:00) [2]

Вот примерчик, но через временный файл на диске (так мне надо было)
var
tmpfile,tmpjpgfile : String;
jpeg : TJpegImage;
bm : TBitMap
begin
bm:=TBitMap.Create;
jpeg:=TjpegImage.create;
randomize();
tmpjpgfile:=pchar("c:\tmp\"+inttostr(random(maxint))+".jpg");
jpgfilename:=tmpjpgfile;
(dmdata.qetmp.FieldByName("img") as tblobfield).SaveToFile (tmpjpgfile);
jpeg.LoadFromFile(tmpjpgfile);
bm.Assign(jpeg);
jpeg.Free;
....
....
....
bm.Free;
end;


asmith   (2002-11-18 21:11:00) [3]

Используй вместо TBitmap класс TJPEGImage, у него также есть метод LoadFromStream.


Наверх

Титульная страница Поиск, карта сайта Написать письмо