不要用TMemoryStream,用TADOBlobStream试试。
var
  s:TADOBlobStream;
begin
  s:=TADOBlobStream.Create(ADOTable1content, bmRead);
try
  OleContainer1.LoadFromStream(s);
finally
  s.free;
end;
end;

解决方案 »

  1.   

    我试过了把合并后的bolb字段(txt文档)保存为文件,确实显示了两个文件的内容之和,但中间有
    不少的乱码!!!!
    '肯定是有结束符在作怪。'到底是什么符号,请问有解决的办法吗?
    而且我的要求是必须用OleContainer控件显示内容!
    gz,gz,gz!!!
      

  2.   

    不是让你试试TADOBlobStream吗?不要直接用TmemoryStream读字段的数据,那样内容会不正确的。
      

  3.   

    我也试了试,问题与你一样。
    txt应该好解决一点,但Word文档是复合文档,估计比较困难。
      

  4.   

    如果是WORD文档,那么简单的流合并肯定不行。要合并也必须调用Word Basic提供的方法。
      

  5.   

    是指VBA吗??
    那就惨了,我可能得下岗了,各位高人还有好的建议吗???
    'Word Basic提供的方法 '哪里有找得到????
      

  6.   

    怎么找呀??大哥,搜索吗????
    我用csdn的搜索功能,从来就没有成功过呀
      

  7.   

    利用两个OleContainer,第一个用来做编辑器,存放要合并的第一个文件,激活它,第二如果不能动态生成,把他的长宽设为0,用做循环打开后面的文档,复制并粘贴到第一个中。如何用VBA,确切的说是word对象控制OleContainer,我给你发个例子。
    留下你的mail.
      

  8.   

    剪切板一次只能复制一次呀,你是说复制一次马上就粘贴一次吗?那样的话第二个OleContainer
    也会被后面的覆盖呀,
    我的emai是[email protected]
      

  9.   

    第一个OleContainer将被word对象控制,而不在用OleContainer.paste,而是word的paste
    但有个问题OleContainer.copy之后,word 不支持其格式,贴不进去。(昨晚我做了一下)
    如果为第二个OleContainer也创建一个word对象的话,程序就有些麻烦了word2000估计会好一些,但97会有点困难。不过也不是没有希望。东西我给你寄过去,你试试吧。