首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

DELPHI将图片保存到ORACLE下,二进制流保存到变量存不进去,高分想求,该如何处理

2012-03-17 
DELPHI将图片保存到ORACLE下,二进制流保存到变量存不进去,高分想求,急~procedure TForm1.Button1Click(Sen

DELPHI将图片保存到ORACLE下,二进制流保存到变量存不进去,高分想求,急~
procedure TForm1.Button1Click(Sender: TObject);
var
  mem:TMemoryStream;
begin

  mem:=TMemoryStream.Create;
  try
  if OpenDialog1.Execute then
  begin
  mem.LoadFromFile(OpenDialog1.FileName);
  mem.position:=0;
  with ADOQuery1 do
  begin

  close;
  sql.Clear;
  sql.Add('insert into imagetest (imgid,imgsize) values(1,:mem)');

  Parameters.ParamByName('mem').LoadFromStream(mem,ftblob);
  //TBlobField(Parameters.ParamByName('mem').Assign(mem));
  ExecSQL;
  end;
end;
 finally
  mem.Free;
end;
end;


[解决办法]
那就改成用ADOQuery1的POST方式吧,用ADOQuery1自动生成的SQL语句
[解决办法]
with ADOQuery1 do
begin
Append;
//...................改成这种方式提交试试
TBlobField(FieldByName('Exe_Bin')).LoadFromFile(FileName);
Post;
end;
[解决办法]

探讨
mem=0;我也不清楚什么情况,不是存不仅数据库,而是参数mem本身就是空的

[解决办法]
sql.Add('insert into imagetest (imgid,imgsize) values(1,:mem)');

我也没看出问题,我的意思是不执行SQL提交,以

with ADOQuery1 do
begin
Append;
FieldByName('imgid').Asstring := 1;
TBlobField(FieldByName('imgsize')).LoadFromFile(FileName);
Post;
end;
这样子提交到数据库,我一般都是这样做的

热点排行