我用的存储过程做的插入动作.
字段Photo,类型为Image
保存的代码:
PhotoStream := TMemoryStream.Create;
Try
gePhoto.Picture.Graphic.SaveToStream(PhotoStream);
PhotoStream.Position := 0;
if PhotoStream.Size >0 then
Parameters.ParamByName('@Photo').LoadFromStream(PhotoStream,ftBlob)
else
Parameters.ParamByName('@Photo').Value := '';
finally
PhotoStream.Free;
end;读取的代码:
PhotoStream := TMemoryStream.Create;
try
TBlobField(Dmform.qryUsers.FieldByName('Photo')).SaveToStream(PhotoStream);
if PhotoStream.Size >0 then
begin
PhotoStream.Position := 0;
try
gePhoto.Picture.Graphic.LoadFromStream(PhotoStream); //在这里老爱报错。
except
end;
end else
gePhoto.Picture.Graphic := nil;
Finally
PhotoStream.Free;
end;
保存是可以成功的,但读取的时候报错。报错在gePhoto.Picture.Graphic.LoadFromStream(PhotoStream)这句话这儿。
哪位老大帮助看看我的代码有什么问题?都整了半天了,
字段Photo,类型为Image
保存的代码:
PhotoStream := TMemoryStream.Create;
Try
gePhoto.Picture.Graphic.SaveToStream(PhotoStream);
PhotoStream.Position := 0;
if PhotoStream.Size >0 then
Parameters.ParamByName('@Photo').LoadFromStream(PhotoStream,ftBlob)
else
Parameters.ParamByName('@Photo').Value := '';
finally
PhotoStream.Free;
end;读取的代码:
PhotoStream := TMemoryStream.Create;
try
TBlobField(Dmform.qryUsers.FieldByName('Photo')).SaveToStream(PhotoStream);
if PhotoStream.Size >0 then
begin
PhotoStream.Position := 0;
try
gePhoto.Picture.Graphic.LoadFromStream(PhotoStream); //在这里老爱报错。
except
end;
end else
gePhoto.Picture.Graphic := nil;
Finally
PhotoStream.Free;
end;
保存是可以成功的,但读取的时候报错。报错在gePhoto.Picture.Graphic.LoadFromStream(PhotoStream)这句话这儿。
哪位老大帮助看看我的代码有什么问题?都整了半天了,
解决方案 »
- 如何开发一款FLASH打包软件?
- TRZchecktree的上的node的勾选问题
- shellexecute中执行命令行传入参数的问题
- 实现:比较两图,把不同的点记录到list中,最后再将LIST中的图画出,结果有问题,请帮助,谢谢
- 时间格式在adodataset中的设置??
- dblookupcombobox使用方法求助(急)
- 数组的下标可以使用字符吗?
- 究竟是哪里错了呢?
- 一个简单的问题:怎样才能使表单运行居中呢??
- @@@@@@@@@@@@@@@@@@to zswang(伤心伴水)师傅在吗@@@@@@@@@@@@@@@@@
- 英文系统下面的中文字符显示乱码问题
- 屏蔽鼠标/键盘,搜一晚上了,帮帮吧!
大概思路上有两种:一种是保存同时已知的文件扩展名保存,然后根据不同类型,读取时调用不同的类,比如bmp是tbitmap等.
第二种就是摸索的方法了,用不同的类分别去尝试读取,用try except,成功就退出。
然后先用jpeg.LoadFromStream读取,再用image.picture.assign(jpeg);之后释放就行了