谢谢!aricyoung,在吗?
我现在按到上面的例子,去写一些相关的代码时,打开、保存图片时没有问题。我想检验保存动作是否真的保存进去。但,在读取数据库中的图片时,报错!请指点!!!
出错提示是:ERROR;llleagl character in input file:' '($A1A1)
相关源代码如下:
//保存
var
tmp:TMemoryStream;
begin
tmp:=TMemoryStream.Create;
if sFileName='' then
begin
application.MessageBox('请先选择图片所在的路径!','提示',MB_OK);
exit;
end;
image1.Picture.Graphic.SaveToStream(tmp);
ADOQuery1.Close;
ADOQuery1.SQL.Text:='update bzgzry set zp=
ic where zgzh=:zgzh';
ADOQuery1.Parameters.ParamByName('zgzh').Value:=rightstr(form1.DBEdit3.Text,8);
ADOQuery1.Parameters.ParamByName('pic').LoadFromStream(tmp,ftBLOB);
ADOQuery1.ExecSQL;
end;
//读取
var
mStream:TMemoryStream;
JpgFile:TjpegImage;
begin
ADOQuery1.Close;
ADOQuery1.SQL.Text:='select * from bzgzry where zgzh=:zgzh';
ADOQuery1.Parameters.ParamByName('zgzh').Value:=rightstr(form1.DBEdit3.Text,8);
ADOQuery1.Open;
if not ADOQuery1.FieldByName('zp').IsNull then begin
mStream:=TMemoryStream.Create ;
JpgFile:=TjpegImage.Create ;
TBlobField(ADOQuery1.FieldByName('zp')).SaveToStream(mStream); //顯示的轉換為BlobFiled並保存至內存流 //注:主要是这一句报的错!
mStream.Position :=0;
jpgfile.LoadFromStream(mStream); //主要就是这一句
image2.Picture.Assign(JpgFile);
end
else begin
image2.Picture :=nil;
end;
end;