高手近来拿分:ole的问题(50分)

  • 主题发起人 主题发起人 dean_joy
  • 开始时间 开始时间
D

dean_joy

Unregistered / Unconfirmed
GUEST, unregistred user!
access数据库中一字段均为word文档(ole),要在delphi中引用该怎么实现呢?
 
//读取
procedure TForm1.btn1Click(Sender: TObject);
var
BlobStr:TBlobStream;
begin
TBlobField(tbl1.FieldByName('Operation')).SaveToFile('c:/hrp50s/temp.rtf');
redt1.Lines.LoadFromFile('c:/hrp50s/temp.rtf');
end;
//保存
procedure TForm1.btn2Click(Sender: TObject);
begin
tbl1.Edit;
redt1.Lines.SaveToFile('c:/hrp50s/temp1.rtf');
TBlobField(tbl1.FieldByName('Operation')).LoadFromFile('c:/hrp50s/temp1.rtf');
tbl1.Post;
end;

用流实现procedure TForm1.btn1Click(Sender: TObject);
var
MemoStr: TStringStream;
begin
MemoStr := TStringStream.Create(tbl1.FieldByName('content').AsVariant);
redt1.Lines.LoadFromStream(MemoStr);
MemoStr.Free;
end;

procedure TForm1.btn2Click(Sender: TObject);
var
MemoStr1: TStringStream;
begin
MemoStr1 := TStringStream.Create('');
redt1.Lines.SaveToStream(MemoStr1);
tbl1.Edit;
TBlobField(tbl1.FieldByName('content')).LoadFromStream(MemoStr1);
tbl1.Post;
end;
这个看一下???
 
应该要用oleContainer实现,因为word文档中有公式图形。
应该不难但是小弟第一次做这个,没有思路...
 
还有,用ado实现。小弟对这部分也比较生疏,还求高手一并给我讲解一下吧?
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=187085
如何用DELPHI显示ACCESS97中的OLE字段
我认为和这个类似,你看看吧
 
你可以利用delphi 控件面板server下的控件,
另外你可以在论坛里搜一下,好多的,我现在也在作相似的功能,可以讨论
QQ:123564042
 
我早就搜索过了,所以才在这里问的,可以具体一点吗...
to app2001:我看了,有一句,blobStream := TBlobStream.Create(Table1cdx, bmRead);
会出现EInvalidCast错误?
 
是我说的不够清楚吗?高手帮忙啊。
 
为什么有这么多人看了却没有回答?
我把我的问题再说一遍吧。

现有一个access数据库,字段类型为ole,装着word文档。
把特定(比如指定index)的字段读取出来,显示在olecontainer中。

看过了app2001说的:http://www.delphibbs.com/delphibbs/dispq.asp?lid=187085
其中有一句blobStream := TBlobStream.Create(Table1cdx, bmRead);
我用的时候会出现EInvalidCast错误。问题就一直搁浅着。求达人!
 
现在EInvalidCast问题解决了。但是在
代码:
OleContainer.LoadFromStream(st);
时会出现invalid stream format 是怎么回事啊?
 
"出现invalid stream format 是怎么回事啊"

OleContainer.LoadFromStream(st);只能载入由OleContainer内保存的流
 
后退
顶部