delphi+odac+oracle9i,怎样插入图片到blob字段中,或者更新blob字段

aiq 2009-03-05 03:51:41
procedure TForm1.Button1Click(Sender: TObject);
var
pic:TMemoryStream;
begin
with OraQuery2 do
begin
close;
sql.Clear;
sql.Add('insert into aaa (id,pic1) values (:id,:pic1) ');
params.ParamByName('id').Value:=trim(edit_id.Text);
pic:= TMemoryStream.Create; // 创建内存流
Image1.Picture.Graphic.SaveToStream(pic); // 将图片保存到内存流中
Params.ParamByName('pic1').LoadFromStream(pic,ftblob);
execsql;
pic.Free;
end;
OraQuery1.Refresh;
end;
以上语法能插入图片,但图片大小好像超过5、6K的话,就出错了,请问那里有问题?

怎样更新?
procedure TForm1.Button3Click(Sender: TObject);
var
pic:TMemoryStream;
begin
with OraQuery2 do
begin
close;
sql.Clear;
sql.Add('update aaa set pic1=:pic1 where id=:id ');
pic:= TMemoryStream.Create; // 创建内存流
Image1.Picture.Graphic.SaveToStream(pic); // 将图片保存到内存流中
Params.ParamByName('pic1').LoadFromStream(pic,ftblob);
params.ParamByName('id').Value:=trim(edit_id.Text);
execsql;
pic.Free;
end;
OraQuery1.Refresh;
end;

上面这个更新有问题,没发更新,怎么处理下
...全文
280 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
aiq 2009-03-06
  • 打赏
  • 举报
回复
没人帮忙啊,真不知道啥原因,日
aiq 2009-03-06
  • 打赏
  • 举报
回复
能告诉我odac你用的什么版本,我用long raw就可以,但一个表只能有一个long raw,我表中更需要几个blob
我的update小图片也不行
bdmh 2009-03-05
  • 打赏
  • 举报
回复
我完全用的你的代码,只是新建了一个简单的表,只有id和pic字段
aiq 2009-03-05
  • 打赏
  • 举报
回复
难道需要那个地方参数要设置下?
aiq 2009-03-05
  • 打赏
  • 举报
回复
语法一样的吗?
bdmh 2009-03-05
  • 打赏
  • 举报
回复
正常,而且存入了2百多k的图片
aiq 2009-03-05
  • 打赏
  • 举报
回复
楼上测试正常?
bdmh 2009-03-05
  • 打赏
  • 举报
回复
测试正常

2,496

社区成员

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

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