一个老问题,唉,还是让我这么心烦!(80分)

  • 主题发起人 主题发起人 jobsxy
  • 开始时间 开始时间
J

jobsxy

Unregistered / Unconfirmed
GUEST, unregistred user!
如何向一个数据库表追加图像?

数据库是Access,图形字段是OLE A....
参考了以前的有关回答,写了如下的代码

//追加
procedure TForm1.Button1Click(Sender: TObject);
var
MyIcon : TIcon;
zz : TstringStream;
begin
try
MyIcon := TIcon.Create;
zz := TStringStream.Create('');
MyIcon.SaveToStream(zz);

with ADOQuery1 do begin
Close;
Sql.Clear;
Sql.Add(' Insert into iconlist (icongraph)');
sql.add(' values (:icongraph) ');
Parameters.ParamByName('Icongraph') := zz.DataString;
ExecSql;
end;
finally
MyICon.free;
MyIcon := nil;
zz.free;
zz := nil;
end;

end;
以上代码执行没有什么问题,数据库表也增加了一条记录,可我用DBImage显示IconGraph字
段时,却发生了错误。似乎存入了错误的格式:(,

特求教!
 
这样行不行:

var ms:TMemoryStream;

ms:=TMemoryStream.Create;
MyIcon.SaveToStream(ms);
ms.Position:=0;
Parameters.ParamByName('Icongraph').LoadFromStream(ms);
最后记得ms.Free
 
to pipi:
Parameters.ParamByName('Icongraph').LoadFromStream(ms); //在这一行编译出错
 
漏了一个参数
Parameters.ParamByName('Icongraph').LoadFromStream(ms,ftBlob);
 
多人接受答案了。
 
后退
顶部