我想问两个比较简单的问题:--困扰我好几天了(100分)

  • 主题发起人 主题发起人 kingly
  • 开始时间 开始时间
K

kingly

Unregistered / Unconfirmed
GUEST, unregistred user!
我想用ole来显示word和wps以及html等文件,但是使用的时候总是出现问题,可能使我对ole不熟的问题,请各位大虾指教:
1:我将文件读出放到一个TblobField字段的数据库中,然后再从数据库中读出放到一个memoryStream(ms)中去,但是我用OleContainer1.LoadFromStream(ms)时候,在运行的时候出错,出错信息是Stream读错误.我看了一些参考书都是这么写的,是不是设置的不对?
2:由于上面出错,我就用了OleContainer1.CreateobjectfromFile('c:/temp.doc',false),但是也是出错,提示信息是:OLE error 80030002.
这两个问题困扰我几天了,答者有奖
 
面值一百分,一定奉送
 
OleContainer1.CreateObjectFromFile(OpenDialog1.FileName,false);没有问题阿
 
不知道你是怎么读的,TBlobField(YouFieldName).SaveToStream(ms),然后在WordOle.LoadFromStream(ms)。你看看是不是这样做的?
 
那锦渤的说法应该是可以的,我觉得这样做也比较好,我其他方面的也是这样做的。
 
^_^,我只使用了第二种方法,没有错误的,只是此时并没有激活,激活用下面语句可以实现:OleContainer1.DoVerb(0);
 
那锦渤等各位高手:
按理说是可以的,但是我的操作总是出问题:我用的是access数据库,源代码如下:
procedure TForm1.Button2Click(Sender: TObject);
var
ms:TMemoryStream;
begin
With Testole do
begin
Active := True;
First;
if FieldByName('Num').asstring <> '' then
begin
ms := TMemoryStream.Create;
TBlobField(FieldByName('olecol') as TBlobField).SaveToStream(ms);
ShowMessage('find '+InttoStr(ms.Size));
OleContainer1.LoadFromStream(ms);
end;
end;
其中testole是表名,olecol是一个Ole类型的字段,这都没有错误,showmessage显示43是正确的,但是最后一句显示:Stream Read Error,我不知道问题处在什么地方.
 
后退
顶部