起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: yueliwen

【搞定】如何将OLE字段中文件直接保存下来?**

[复制链接]
发表于 2006-5-15 09:34:25 | 显示全部楼层
TOleContainer.SourceDoc是源文件名,你可以利用函数解析出扩展名来
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-23 11:28:16 | 显示全部楼层
我现在使用的是表格文档,没有TDataEdit控件,请问用什么办法保存?
如果用同时使用一个表单文档和一个表格文档,将表单文档隐藏,发现上传的附件无法保存到数据库(表单文档隐藏无法获得焦点)
如果直接操作数据字段,TBlobField(dsTarget.DataSet.FieldByName('Blobole')).LoadFromFile(OpenDialog.FileName),执行时报错:Invalid stream format;且TBlobField(dsTarget.DataSet.FieldByName('Blobole')).SaveToFile(SaveDialog.FileName)保存下来的文件是不可识别的乱码。
回复 支持 反对

使用道具 举报

发表于 2006-5-24 12:40:34 | 显示全部楼层
不用TDataEdit一样可以啊,实际上操作的是TOleContainer类,只要调用 TOleContainer.LoadFromStream从字段流中读取数据,然后调用 TOleContainer.SaveAsDocument保存

如果需要保存到字段也可以 TOleContainer.CreateObjectFromFile,然后调用TOleContainer.SaveToStream到字段流就可以了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-25 11:16:23 | 显示全部楼层
CreateObjectFromFile不是静态的函数无法直接调用,不知道代码该如何写,我这样写,发现报错

ole01.jpg

78.08 KB, 下载次数: 444

回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-25 11:16:56 | 显示全部楼层
保存到磁盘

ole02.jpg

46.37 KB, 下载次数: 450

回复 支持 反对

使用道具 举报

发表于 2006-5-26 00:02:25 | 显示全部楼层
to 14楼
控件没有主窗体
TOleContainer.Create(Self)
Parent := Self;
给这个控件设置主窗体为当前窗体

to 15楼
执行完SaveToStream,流的位置已经到了最后,因此需要执行lStream.Position := 0,或者执行lStream.Seek,移动流的位置到流头
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-29 15:46:41 | 显示全部楼层
问题已解决,可以结贴了
回复 支持 反对

使用道具 举报

发表于 2006-6-7 13:54:30 | 显示全部楼层
能给段正确的完整的代码吗?
回复 支持 反对

使用道具 举报

发表于 2006-11-2 09:54:30 | 显示全部楼层
>>能给段正确的完整的代码吗?

是啊,很期待!

可以肯定的是,起步已经为程序员做了很多的事情了,
但是希望能够再进一步。

例如:对于文件上传的问题,能够总结如下:
1.实现附件的上传和下载.
1.1 将二进制的类型,显示为"文件上传/下载".
1.1.1 在添加的时候文档里面显示为一个“上传”的按钮。允许用户选择一个本地文件.
1.1.2 在浏览的时候,显示出文件的名称,像:"关于什么的.什么的.doc".用户点右键的时候,弹出菜单“另存为"

^_^
我还不了解起步,给我感觉的是起步不想让我了解,因为感觉她是很内向,很封闭。
其实我也不想了解她太多,因为我害怕会爱上她。^_^
我不想知道太多的技术细节。如果她喜欢封装,那么就封装到底。
如果她想把事情简单化,那么希望她坚持自己的原则,继续简化下去。

^_^
起步,你们已经把软件做得相当好了,
希望下一步,希望你们教会用户如何使用你们的产品来解决他们的问题。
把文档,帮助,教程,都尽量做好。
拿你们和微软比,对你们不公平,
但是,如果你们想成功,要学习成功的人在做什么,你们照着做就行了.

有不同的声音,是件好事.
回复 支持 反对

使用道具 举报

发表于 2007-1-4 10:12:43 | 显示全部楼层
不知道 管理员看没看到19楼的话,说的多好啊。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-19 23:09 , Processed in 0.057402 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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