起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 139|回复: 4

报错**

[复制链接]
发表于 2008-3-28 17:54:32 | 显示全部楼层 |阅读模式
procedure TMainForm.Button3Click(Sender: TObject);
VAR
NS : TMemoryStream;
OS : TMemoryStream;
begin
NS := TMemoryStream.Create;
OS := TMemoryStream.Create;
         DataSetBZSJJ1.open;
         TBlobField(DataSetBZSJJ1.FieldbyName('FILES')).SaveToStream(NS);
         NS.Position :=12;
         OS.CopyFrom(NS,NS.Size-12);
         OleContainer1.LoadFromStream(OS);//这里出错
end;

说明:
  我存入的时候是用OleContainer1.SaveToStream(NS);  存的
代码如下:
存入
procedure TMainForm.Button1Click(Sender: TObject);
var
NS: TMemoryStream;
begin
if OpenDialog1.Execute then
begin
NS:=TMemoryStream.Create;
OleContainer1.CreateObjectFromFile(OpenDialog1.FileName,false);
OleContainer1.SaveToStream(NS);
NS.Position := 0;
DataSetBZSJJ1.open;
DataSetBZSJJ1.Append;
TBlobField(DataSetBZSJJ1.FieldbyName('FILES')).LoadFromStream(NS);
DataSetBZSJJ1.FieldbyName('F_ID').asstring :=OpenDialog1.FileName;
DataSetBZSJJ1.Post;
DataSetBZSJJ1.ApplyUpdates;
NS.Free;
end;
end;

出错.jpg

7.69 KB, 下载次数: 107

回复

使用道具 举报

 楼主| 发表于 2008-3-28 18:07:36 | 显示全部楼层
up
回复 支持 反对

使用道具 举报

发表于 2008-3-28 23:47:06 | 显示全部楼层
不知道楼主为什么要这么写?
尝试这么写看看吧
  NS := TMemoryStream.Create;
  OS := TMemoryStream.Create;
  try
    TBlobField(DataSetBrokerA.DataSet.FieldbyName('TP')).SaveToFile('c:\a.pdf');
    NS.LoadFromFile('c:\a.pdf');
    //NS.Position :=12;
    //OS.CopyFrom(NS,NS.Size-12);
    OleContainer1.LoadFromStream(NS);
....
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-29 23:43:01 | 显示全部楼层
这样读出来的才是word文档的流而不包括OleContainer1的一些东西
回复 支持 反对

使用道具 举报

发表于 2008-3-31 09:02:19 | 显示全部楼层
那还有问题吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-9 03:30 , Processed in 0.045510 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表