Форум: "Базы";
Текущий архив: 2002.12.05;
Скачать: [xml.tar.bz2];
ВнизКак прочитать формат JPEG из SQLServer 2000 Найти похожие ветки
← →
JurMax (2002-11-18 20:28) [0]Написал приложение на 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
← →
asmith (2002-11-18 21:11) [1]Используй вместо TBitmap класс TJPEGImage, у него также есть метод LoadFromStream.
← →
shiling (2002-11-19 06:49) [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;
← →
iNew (2002-11-19 07:43) [3]DbImage не поддеоживает JPEG.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.12.05;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c