读书人

DELPHI将图片保存到ORACLE下二进制流

发布时间: 2012-03-17 19:06:28 作者: rapoo

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;
这样子提交到数据库,我一般都是这样做的

读书人网 >.NET

热点推荐