用C#读取OLE对象

时间:2017-03-08 09:02:29

标签: c# .net sql-server binaryfiles ole

我有一个使用Visual Basic创建的旧应用程序,可以将文档作为OLE对象上载和下载。将其检索到SQL Server数据库,该数据库将它们存储在varbinary(max)字段中。但是,这些垃圾箱的格式与常规文件不同,因为OLE以自己的方式构建它们。

我想用使用SQL的.NET C#应用程序批量下载所有这些文档,但我找不到办法。我曾尝试使用SqlDataReaderMemoryStreamFileStream将二进制数据复制到新文件中,但是他们直接解释了这些信息,而不是按照OLE结构的方式。因此,生成的文件已损坏。

是否有一个类可以正确解释这个OLE二进制文件?旧的应用程序使用了OLE容器组件,但它们几年后就不存在了。

1 个答案:

答案 0 :(得分:0)

这是一篇从未得到答复的旧帖子。我本人也遇到类似的情况,我需要拍摄图像并将其转换为OLE文件,以便Microsoft Access OLE绑定框架可以读取它们。我已经研究了好几天,现在才发现我需要的二进制格式,即“复合文件...”或“结构文件”。他们有可用的Nuget软件包,应该可以满足我们在此处需要的功能:OpenMCDF

我仍在设法弄清楚如何从Raw Binary创建复合文件的过程中……但是我觉得自己已经很接近了,一旦获得解决方案便会发布解决方案。