用image控件不能正常显示Sql server2000数据库中的图片
大家好:
我想用image控件显示Sql server2000数据库中的图片,程序如下。但出现错误,请指点。
procedure TForm1.Button4Click(Sender: TObject);
var
tmpstream : tmemorystream;
begin
adoquery2.Close;
adoquery2.SQL.Clear ;
adoquery2.SQL.Text:='select * from mao ';
adoquery2.Prepared :=true;
adoquery2.Open ;
tmpstream:=tmemorystream.Create;
try
tblobfield(adoquery2.Fieldbyname('tuxiang')).SaveToStream(tmpstream);
tmpstream.Position:=0; //少了它不行。
image1.Picture.Graphic.LoadFromStream(tmpstream); //显示access violation
finally
tmpstream.Free;
end;
end;
当程序执行到 image1.Picture.Graphic.LoadFromStream(tmpstream) 这
一句时系统报错,显示错误信息Access Violation。为什么会出现这种情况,请老师指点。
最后问一句,tmpstream.position:=0这一句为什么不能少?
问题点数:20、回复次数:2Top
1 楼maozefa(阿发伯)回复于 2006-12-03 11:37:21 得分 0
可能是图像格式问题,Timage不能识别,
tmpstream.position:=0不过是将流的位置移到最开始,保存到流时流指针已经移到流的尾部,所以要移到开始位置,好Load
Top
2 楼wuheng66888(吴恒)回复于 2006-12-03 13:22:05 得分 0
应该是图片格式,image不支持Top




