请帮小弟一个忙?就剩这点分了。(50分)

  • 主题发起人 主题发起人 lsz_615
  • 开始时间 开始时间
L

lsz_615

Unregistered / Unconfirmed
GUEST, unregistred user!
我想实现用TOlecontain控件显示ACCESS数据库里的OLE字段值(存储Word文档)
有两种基本方案,都试过了,但都不行。
第一种:
procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
var
BS:TBlobStream;
begin
bs:=TBlobStream.Create(Table1.FieldbyName('neirong') as TBlobField,bmRead);
if BS.Size<>0 then
try
with olecontainer1 do
begin
LoadFromStream(BS); //在这提示“invalid Stream format错误!
if State<>osEmpty then
Iconic:=true;
end;
finally
bs.Free;
end;
end;
第二种:

ms:Tmemorystream;
fname:string;
begin
ms:=Tmemorystream.Create;
TBlobfield(Table1.fieldbyname('neirong')).savetostream(ms);
fname:=ExtractFilePath(Application.Exename)+'tempBlob'
+'.DOC';
ms.SaveToFile(fname);
olecontainer1.CreateObjectFromFile(fname,false);
ms.Free;
end;
提示一个让你选择转换文件类型的窗口,但里面绝对没有word97,哪一个也
打不开“fname”这个文件。
 
访问Access中的OLE
好像用TBlobStream是不行的,应该用那个TADOBlobStream(不知道是不是这样写)。
 
谢谢你的参与!
 
后退
顶部