Доброго времени суток!
такая проблема, есть dataset, в нем одно поле и оно есть blob с картинкой (gif).
картинку надо сохранить на диск.
если делать так
Код:
procedure TestMacroProc (MName:string; AParams:TObject);
var
FS: TFileStream;
wPrm:TmParams;
ds:Tdataset;
buffer:Variant;
buf:TBlobByteData;
zap:string;
s:string;
begin
img:=Timage.create(nil);
wPrm:=AParams as TmParams;
zap:='select image from dent_teeth_map where map_id='+wPrm.Values[0];
ds:=CreateSQLDataset(zap,true);
ds.Open;
buffer:=ds.GetBlobFieldData(1,buf);
FS:=TFileStream.Create('c:\1.gif', fmCreate); // создаем файл
with FS do
try
Seek(0, soFromBeginning); // перемещаем указатель в начало потока
WriteBuffer(buf, buffer);// записываем целое
finally
Free; // закрываем файл, освобождаем память
end;
ds.close;
end;
то файл создается. по длине он совпадает с исходным файлом(который грузился в базу) но вот по содержимому он совершенно другой и как следствие это уже получается не картинка а файл с мусором
