起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 215|回复: 8

【搞定】二进制字段如何保存为本地文件?急!**

[复制链接]
发表于 2008-1-11 16:33:21 | 显示全部楼层 |阅读模式
二进制字段里保存的文件类型很杂,有TXT,WORD,EXCEL,BMP,AUTOCAD或其它的,现在已经可以保存并显示,但是要把它再保存为本地文件,都是出现乱码。

我搜索了论坛上的相关问题,如http://bbs.justep.com/forum.php?mod=viewthread&tid=1951 所讲的,并没有解决问题。麻烦看看我的方法是不是有错:

   SaveDialog.FileName:=DataSetBrokerNR.DataSet.FieldByName('WJMC').asString;
      if SaveDialog.Execute then
        TBlobField(DataSetBrokerNR.DataSet.FieldByName('FJNR')).SaveToFile(SaveDialog.FileName);
回复

使用道具 举报

 楼主| 发表于 2008-1-11 16:35:44 | 显示全部楼层
SaveAsDocument方法也用过,同样的问题。
回复 支持 反对

使用道具 举报

发表于 2008-1-11 16:47:25 | 显示全部楼层
如果添加文件方式是ole表现类型那个方式添加的,直接保存下来应该会是乱码的。ole在文件头会添加东西
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-11 16:55:33 | 显示全部楼层
是的,添加的时候起先按照你们的方法:
实现通过OpenDialog选择一个OLE文件,并保存到表一(Target)的二进制流OLE字段中,代码如下:

TOleContainer(CZEJZLZDSLYWXX.TEJZLB1JLST(DocView1.Doc).
DataEditBolbOLE.InplaceControl).
CreateObjectFromFile(OpenDialog.FileName, False);

结果这样添加进来的居然不能在DATAEDIT控件上显示。于是我用了我自己用OLE封装的控件
DBOleContainer1.CreateObjectFromFile(sFileName, False);
这样可以在DATAEDIT里正常显示WORD,EXCEL,VISIO等文档。现在就是无法再保存到本地了。这样有什么问题吗
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-11 17:03:40 | 显示全部楼层
需要我再提供哪方面信息呢尽管说。我接触JUSTEP系统才半个月,许多东西还不是很清楚。
回复 支持 反对

使用道具 举报

发表于 2008-1-11 17:20:09 | 显示全部楼层
http://bbs.justep.com/forum.php? ... 1&highlight=ole
ole的问题在这个上面有解释。
楼主必须想办法绕开或者想别的办法。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-11 17:29:29 | 显示全部楼层
你说的这个是保存到数据库并显示的问题,我也已经解决了。现在说的是要再保存为本地文件。
回复 支持 反对

使用道具 举报

发表于 2008-1-11 17:30:44 | 显示全部楼层
保存本地文件,也会对源文件修改的。所以有的会显示乱码。m$的问题,偶也没折。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-12 15:56:51 | 显示全部楼层
使出绝招了,让用户双击DATAEDIT,然后另存为。。。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-5 05:57 , Processed in 0.040448 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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