有关Access的OLE字段的问题,困扰我很久了,希望各位大虾帮忙看看,谢了,100奉上 ( 积分: 100 )

  • 主题发起人 主题发起人 Spring_Thunder
  • 开始时间 开始时间
S

Spring_Thunder

Unregistered / Unconfirmed
GUEST, unregistred user!
有关Access的OLE字段的问题,困扰我很久了,希望各位大虾帮忙看看,谢了,100奉上
在Access中建了一个表,表中有个字段是OLE类型的,在硬盘上直接拷贝WORD文件或是打开WORD文件选中全部再拷贝,然后打开含有OLE字段的表,在该字段是粘贴,都可以将内空保存到这个字段中,字段上显示是Microsoft Word文档,双击也可以打开Word查看,可为什么通过程序就不行呢?
不论是
(ADOQuery1.FieldByName('sub_content') as tblobfield).SaveTofile('ab.doc');
还是
(ADOQuery1.FieldByName('sub_content') as tblobfield).SaveToStream(MS);
再用OLE加载这个MS流都不行,这是怎么回事呢?
如果往数据库里存的时候是用流的时候,用上面的方法读出来是没问题的,可为什么这样就不行啊?

因为当时一时疏忽所以,一直是用上面的方法加往表里添加的,现在已经加了几万条记录了,我该怎么办啊?让用户重新录入已经是不太现实了,可一直读不出来该怎么办呢?

有人碰到过类似的问题吗?
 
有关Access的OLE字段的问题,困扰我很久了,希望各位大虾帮忙看看,谢了,100奉上
在Access中建了一个表,表中有个字段是OLE类型的,在硬盘上直接拷贝WORD文件或是打开WORD文件选中全部再拷贝,然后打开含有OLE字段的表,在该字段是粘贴,都可以将内空保存到这个字段中,字段上显示是Microsoft Word文档,双击也可以打开Word查看,可为什么通过程序就不行呢?
不论是
(ADOQuery1.FieldByName('sub_content') as tblobfield).SaveTofile('ab.doc');
还是
(ADOQuery1.FieldByName('sub_content') as tblobfield).SaveToStream(MS);
再用OLE加载这个MS流都不行,这是怎么回事呢?
如果往数据库里存的时候是用流的时候,用上面的方法读出来是没问题的,可为什么这样就不行啊?

因为当时一时疏忽所以,一直是用上面的方法加往表里添加的,现在已经加了几万条记录了,我该怎么办啊?让用户重新录入已经是不太现实了,可一直读不出来该怎么办呢?

有人碰到过类似的问题吗?
 
TBlobField(ADOQuery1.FieldByName('sub_content')).SaveToStream(Stream);
 
to : bbscom
TBlobField(ADOQuery1.FieldByName('sub_content')).SaveToStream(Stream);

(ADOQuery1.FieldByName('sub_content') as tblobfield).SaveToStream(MS);
其实是一样的
 
procedure TForm1.FormCreate(Sender: TObject);
var
Stream:TMemoryStream;
begin
Stream:=TMemoryStream.Create;
Stream.Position:=0;
Stream.LoadFromFile('c:/You.doc');
// Save To DataSet
TBlobField(ADOQuery1.FieldByName('sub_content')).LoadFromStream(Stream);
// Save To MemoryStream
TBlobField(ADOQuery1.FieldByName('sub_content')).SaveToStream(Stream);
// MemoryStream Save To File
Stream.SaveToFile('C:/Save.doc');
end;
 
to:bbscom
谢谢
不过你没明白我的意思
你那种方法我知道,我现在需要的是用粘贴的方式存进去的数据,怎么样取出来
 
不行呀。OLE字段是二進制處理,不能當作文本處理(粘帖是文字)。
 
建议建个表试试,看能不能解决,粘贴的不是文字
 
关注此题,
我也碰上类似问题
 
to zwz_good
你解决了吗?
 
谁知道该怎么解决啊?我都快愁死了
 
我也帮你顶
 
接在ACCESS粘贴入的OLE内容,ACCESS会自动加上一段数据做为头
建议,把同一段内容,用粘贴和程序写入两种方法写入数据库,然后都用程序读出来,对比其内容并分析,应该是粘贴的去掉一个文件头后与程序写入的是相同的
 
to ysai
谢谢,我试一下
 
好像不太容易试出来啊
 
哪位牛人若解决了此问题,还可以到这里获取200分:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3260756
 
楼主,我和你遇到的问题一样,可我解决了!

知道我是怎么解决的吗?用第三方控件!我试了好久,就是不行,我是用来存图片的!
 
图片用代码放进去的,用控件显示出来的
 
to yinnifeiyang
你还是没能解决我的问题,现在我的问题是怎么把读出来
至于说用流或是什么方式保存、读都没问题

现在的问题是怎么把我已经存进去的几万条用粘贴的方式写进去的记录读出来
 
一周了,再提提
 
后退
顶部