sqlstr:='select * from tupian where bt= '+chr(39)+RzListView12.Selected.Caption +chr(39);
with DataModule1.ADOQuery4 do
begin
close;
SQL.Clear;
SQL.Add(sqlstr);
open;
first;
try
t_ms:=Tmemorystream.Create;
t_jpg:=Tjpegimage.Create ;
TBlobField(Fieldbyname('photo')).SaveToStream(t_ms);//将'photo'图片读入到内存流t_ms
t_ms.size;//为什么是0?
t_ms.Position:=0;
t_jpg.LoadFromStream(t_ms) ;
t_jpg.JPEGNeeded;
Image8.Picture :=nil;
Image8.Picture.Bitmap.Assign(t_jpg) ;
finally
t_ms.Free;
t_jpg.Free;
end;
end;
DataModule1.ADOQuery4.Close;
3 个解决方案
#1
问题一、报错‘JPEG Error #42’,是因为 t_ms.size=0,内存流中没有数据!
但是为什么TBlobField(Fieldbyname('photo')).SaveToStream(t_ms)不能读出图片。
问题二、在另外一个程序中,TBlobField(Fieldbyname('photo')).SaveToStream(t_ms)好像不能连续读数据,比如说要一次性读6张图片,用一个循环来做,第一张图片可以读出来,第二、三、四时,那个内存流的size都是为0,可能最后一个又有数据?
很奇怪,这个问题困扰了我几天,一直没有解决,请高手指教!
但是为什么TBlobField(Fieldbyname('photo')).SaveToStream(t_ms)不能读出图片。
问题二、在另外一个程序中,TBlobField(Fieldbyname('photo')).SaveToStream(t_ms)好像不能连续读数据,比如说要一次性读6张图片,用一个循环来做,第一张图片可以读出来,第二、三、四时,那个内存流的size都是为0,可能最后一个又有数据?
很奇怪,这个问题困扰了我几天,一直没有解决,请高手指教!
#2
怎么这里没有高手吗?
我在这里等了几天了,居然没有一个人能够提出一点有意义的参考
我在这里等了几天了,居然没有一个人能够提出一点有意义的参考
#3
上QQ来
我的是83039548
或者MSN:unsignedme@hotmail.com
我的是83039548
或者MSN:unsignedme@hotmail.com
#1
问题一、报错‘JPEG Error #42’,是因为 t_ms.size=0,内存流中没有数据!
但是为什么TBlobField(Fieldbyname('photo')).SaveToStream(t_ms)不能读出图片。
问题二、在另外一个程序中,TBlobField(Fieldbyname('photo')).SaveToStream(t_ms)好像不能连续读数据,比如说要一次性读6张图片,用一个循环来做,第一张图片可以读出来,第二、三、四时,那个内存流的size都是为0,可能最后一个又有数据?
很奇怪,这个问题困扰了我几天,一直没有解决,请高手指教!
但是为什么TBlobField(Fieldbyname('photo')).SaveToStream(t_ms)不能读出图片。
问题二、在另外一个程序中,TBlobField(Fieldbyname('photo')).SaveToStream(t_ms)好像不能连续读数据,比如说要一次性读6张图片,用一个循环来做,第一张图片可以读出来,第二、三、四时,那个内存流的size都是为0,可能最后一个又有数据?
很奇怪,这个问题困扰了我几天,一直没有解决,请高手指教!
#2
怎么这里没有高手吗?
我在这里等了几天了,居然没有一个人能够提出一点有意义的参考
我在这里等了几天了,居然没有一个人能够提出一点有意义的参考
#3
上QQ来
我的是83039548
或者MSN:unsignedme@hotmail.com
我的是83039548
或者MSN:unsignedme@hotmail.com