//我要把数据库图片的流文件读入内存,
然后再从内存读入一个流中,
再显示出来
var
SqlLug:String;
mStream,mStream1:TMemoryStream;
lBufSize: Integer;
sockRequest : TSocket;
lpBuf: PChar;
i:integer;
JpgFile:TjpegImage;
begin
mStream:=TMemoryStream.Create ;
TBlobField(ADOQ_Photo.FieldByName('pic')).SaveToStream(mStream)
lBufSize:=mStream.Size;
mStream.Read(lpBuf^, lBufSize);//这里是不是有错误???
mStream1.Write(lpBuf^, lBufSize);//这里是不是有错误???
mStream1.Position :=0;
JpgFile:=TjpegImage.Create ;
jpgfile.LoadFromStream(MStream1);
image1.Picture.Assign(JpgFile);
end
然后再从内存读入一个流中,
再显示出来
var
SqlLug:String;
mStream,mStream1:TMemoryStream;
lBufSize: Integer;
sockRequest : TSocket;
lpBuf: PChar;
i:integer;
JpgFile:TjpegImage;
begin
mStream:=TMemoryStream.Create ;
TBlobField(ADOQ_Photo.FieldByName('pic')).SaveToStream(mStream)
lBufSize:=mStream.Size;
mStream.Read(lpBuf^, lBufSize);//这里是不是有错误???
mStream1.Write(lpBuf^, lBufSize);//这里是不是有错误???
mStream1.Position :=0;
JpgFile:=TjpegImage.Create ;
jpgfile.LoadFromStream(MStream1);
image1.Picture.Assign(JpgFile);
end
//我要把数据库图片的流文件读入内存,
然后再从内存读入一个流中,
再显示出来
var
SqlLug:String;
mStream,mStream1:TMemoryStream;
lBufSize: Integer;
sockRequest : TSocket;
lpBuf: PChar;
i:integer;
JpgFile:TjpegImage;
begin
mStream:=TMemoryStream.Create ;
mStream1:=TMemoryStream.Create ;
TBlobField(ADOQ_Photo.FieldByName('pic')).SaveToStream(mStream)
lBufSize:=mStream.Size;
mStream.Read(lpBuf^, lBufSize);//这里是不是有错误???
mStream1.Write(lpBuf^, lBufSize);//这里是不是有错误???
mStream1.Position :=0;
JpgFile:=TjpegImage.Create ;
jpgfile.LoadFromStream(MStream1);
image1.Picture.Assign(JpgFile);
end
tempjpeg:TJPEGImage;
begin
try
self.ADODataSet1.Close;
self.ADODataSet1.CommandText:='select * from photo where xh=''4117072007013692''';
self.ADODataSet1.Open;
tempstream:=TStringStream.Create(' ');
TBlobField(ADODataSet1.FieldByName('photo1')).SaveToStream(tempstream);
tempstream.Position:=0;
tempjpeg:=TJPEGImage.Create;
tempjpeg.LoadFromStream(tempstream);
self.Image1.Picture.Bitmap.Assign( tempjpeg );
finally
tempstream.Free;
tempjpeg.Free;
end;
end;
mStream1.Write(lpBuf^, lBufSize);//lpBuf写入mStream1
tempjpeg:TJPEGImage;
ms:TMemoryStream;
lBufSize:Pchar;
begin
try
self.ADODataSet1.Close;
self.ADODataSet1.CommandText:='select * from epbms.vio_jdczp where xh=''4117072007013692''';
self.ADODataSet1.Open;
ms:= TMemoryStream.Create;
tempstream:=TStringStream.Create(' ');
TBlobField(ADODataSet1.FieldByName('photo1')).SaveToStream(tempstream);
tempstream.Position:=0;
Getmem(lbufsize, tempStream.size);//注意这里
tempstream.Read( lbufsize^,tempStream.size );
ms.Position:=0;
ms.Write( lbufsize^, tempStream.size );
ms.Position:=0;
tempjpeg:=TJPEGImage.Create;
tempjpeg.LoadFromStream(ms);
self.Image1.Picture.Bitmap.Assign( tempjpeg );
finally
Freemem( lbufsize );
tempstream.Free;
tempjpeg.Free;
ms.Free;
end;
end;给分吧