通过流将图象写入数据库中,下面的代码有什么错误?

laodiao 2002-06-17 10:21:28
通过流将图象写入数据库中,这段代码是在Query的Before Post事件里面写的,但是保存的总是出错,第一次可以保存Jpeg图象,但是修改的时候都不成功,有没有那位朋友遇到相类似的情况?
if Imgpic.Picture.graphic <> nil then
begin
try
str:=Tmemorystream.Create;
str.LoadFromFile(DlgOpPic.FileName);
str.Position:=0;
Tblobfield(query1.FieldByName(str1)).loadfromstream(str);
except
end;
end;
我想问一下,这个流什么时候释放呢??在提交到数据库前如果这个Str流释放了,会有什么影响?
...全文
68 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
diruser 2003-01-22
  • 打赏
  • 举报
回复
up
flytiger1977 2003-01-22
  • 打赏
  • 举报
回复
改用DBIMAGE就可以了。
jwei119 2003-01-22
  • 打赏
  • 举报
回复
第二次不成功:应该在Post前用Edit方法;
lizongqi 2003-01-16
  • 打赏
  • 举报
回复
帮你up
laodiao 2002-06-17
  • 打赏
  • 举报
回复
SQL Error: SQL Server - [Microsoft][ODBC 驱动程序 管理器] 函数序列错误
laodiao 2002-06-17
  • 打赏
  • 举报
回复
我遇到的错误信息是,错误的函数序列,
短歌如风 2002-06-17
  • 打赏
  • 举报
回复
Tblobfield(query1.FieldByName(str1)).loadfromstream(str);这句之后就可以释放了,不用等提交之后,因为这时数据已经写到BlobField中去了.
其它你可以直接用TBlobField.LoadFromFile,不需要先读到一个流中.
你遇到的错误信息是什么?
rwdx 2002-06-17
  • 打赏
  • 举报
回复
你为什么不尝试两种方法都试试呢,看看有什么结果
netlib 2002-06-17
  • 打赏
  • 举报
回复
Tblobfield(query1.FieldByName(str1)).loadfromstream(str);
后释放没有问题,

至于第一次可以成功,第二次不行,可能是内存问题。
ken_henderson 2002-06-17
  • 打赏
  • 举报
回复
要释放的否则不能提交
laodiao 2002-06-17
  • 打赏
  • 举报
回复

但是为什么第一次添加记录的时候,录入图象就可以了,如果以后修改的时候,就出现了错误
laodiao 2002-06-17
  • 打赏
  • 举报
回复
但是在这里并没有提交到数据库里面,这是给字段赋值,释放这个流,有没有必要呢?
laodiao 2002-06-17
  • 打赏
  • 举报
回复
但是在这里并没有提交到数据库里面,这是给字段赋值,释放这个流,有没有必要呢?
netlib 2002-06-17
  • 打赏
  • 举报
回复
if Imgpic.Picture.graphic <> nil then
begin
try
str:=Tmemorystream.Create;
str.LoadFromFile(DlgOpPic.FileName);
str.Position:=0;
Tblobfield(query1.FieldByName(str1)).loadfromstream(str);
str.free;//这里释放
except
end;
end;
outer2000 2002-06-17
  • 打赏
  • 举报
回复
应该在提交到数据库以后释放

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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