一个函数的问题,请朋友们指教!

取昵称麻烦 2008-11-07 09:52:35
procedure TProduct.SelPhoto(Sender: TObject);
var
stream:TMemoryStream;
jpg: TJPEGImage;
bmp: TBitmap;
begin
stream := TMemoryStream.Create;
jpg := TJPEGImage.Create;
bmp := TBitmap.Create;
if dlgOpenPic.Execute then
try
jpg.LoadFromFile(dlgOpenPic.FileName);
bmp.Assign(jpg);
bmp.SaveToStream(stream);
stream.Position :=0;
if Sender is TDBImage then
TBlobField((Sender as TDBImage).Field.DataSet.FieldByName((Sender as TDBImage).DataField)).LoadFromStream(stream);//运行到这里就提示非法内存访问,但是找不到原因!
finally
stream.Free;
bmp.Free;
jpg.Free;
end;
end;

这个函数实现的功能是像SQL数据库服务器中保存图片。
请各位朋友帮帮忙,我实在找不到错在那里 TDBImage已经创建 DataSet也已经打开,可是提示非法内存访问让人纳闷!
...全文
48 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
取昵称麻烦 2008-11-07
  • 打赏
  • 举报
回复
谢谢您
fangsp 2008-11-07
  • 打赏
  • 举报
回复
其实如果是大的系统的话
我个人建议
在数据库中存储图片存放的路径
通过路径来访问图片
这样数效率会更高些,也容易实现 不容易出错
取昵称麻烦 2008-11-07
  • 打赏
  • 举报
回复
sender 是TDBIMage类型的
byteh 2008-11-07
  • 打赏
  • 举报
回复
TBlobField(adoQryDocLibrary.FieldByName('FileContent')).LoadFromFile(FDocPathAndFileName);

看懂我的例子了吗?
Sender as TDBImage,你传来的Sender 是什么类型的?

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧