起步软件技术论坛-X3

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

【结贴】二进制出现乱码的问题 。。。

[复制链接]
发表于 2009-9-22 08:55:29 | 显示全部楼层
太大了吧,拆分成1M的,然后分别传上来
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-22 09:10:33 | 显示全部楼层
收到了吗?
我叫袁玫茜传过去了
回复 支持 反对

使用道具 举报

发表于 2009-9-22 09:23:19 | 显示全部楼层
收到了,
问一下你的文档是怎么存到数据库里面的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-22 09:24:31 | 显示全部楼层
CreateObjectFromFile 就用这个方法啊
回复 支持 反对

使用道具 举报

发表于 2009-9-22 10:22:53 | 显示全部楼层
http://bbs.justep.com/forum.php? ... aveAsDocument%2Axls
楼上的存储方式对xls支持的不好,这是olecontainer本身的问题。

建议您换一种存储方式,如:lStream.loadfromfile
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-22 17:14:22 | 显示全部楼层
TStream 类没有这个方法吧!
TMemoryStream 类才有
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-22 17:30:27 | 显示全部楼层
这个是我上传的全部代码:
var
  lStream: TStream;
begin
  DataSetSYLJGL.Edit;
  if OpenDialog1.Execute then
  begin
    DG_SYLJGL.FocusedField.AsString := OpenDialog1.FileName.SubString(OpenDialog1.FileName.LastIndexOf('\')+1);
    TOleContainer(DEdt_WJNR.InplaceControl).CreateObjectFromFile(OpenDialog1.FileName, False);
    lStream := DataSetSYLJGL.CreateBlobStream(DataSetSYLJGL.FieldByName('WJNR'),TBlobStreamMode.bmReadWrite);
    TOleContainer(DEdt_WJNR.InplaceControl).SaveToStream(lStream);
    lStream.Free;
  end;
end;
另存为本地的代码:
TOleContainer(DEdt_WJNR.InplaceControl).SaveAsDocument('C:\GXZJY-DY.XLS');  
打开后下另存到本地后,打开这个XLS文件,看不见内容
回复 支持 反对

使用道具 举报

发表于 2009-9-22 18:03:37 | 显示全部楼层
SaveAsDocument在保存excel的时候确实有问题,
能表现类型设置成二进制流,然后用
TBLobField.LoadFromFile
TBLobField.SaveToFile
两个方法么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-22 18:21:37 | 显示全部楼层
试试看
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-22 18:23:10 | 显示全部楼层
TBlobField(DataSetSYLJGL.FieldByName('WJNR')).LoadFromFile(OpenDialog1.FileName);   
用这个方法会报错的:

001.jpg

13.7 KB, 下载次数: 96

回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-16 00:37 , Processed in 0.043681 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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