gpt4 book ai didi

asp.net - DB2 OS/390 BLOB 是否支持 .docx 文件

转载 作者:行者123 更新时间:2023-12-04 06:53:12 26 4
gpt4 key购买 nike

ASP.net 应用程序将 Microsoft Windows 2007 .docx 文件插入到 DB2 OS/390 Blob 表的一行中。另一个 VB.net 应用程序获取 DB2 OS/390 Blob 数据。 VB.net 应用程序启动 Microsoft Word 以打开 .docx 文件,但随后 Microsoft Word 会弹出一条消息,指出数据已损坏。 Word 将允许您修复数据,以便可以查看文件,但这是额外的步骤,用户会提示。

我看过一些示例,其中 .docx 可以转换为 .doc,但他们只谈论剥离文本。我们的一些 .docx 文件中有图片。

有任何想法吗?

最佳答案

我看到这个问题已经有 10 个月了。我希望现在提供帮助还为时不晚。

无论是 DB2 还是任何其他允许“Blob”数据类型的数据库,都不会知道数据来自 .docx 文件,也不会做任何会导致 Word 提示的事情。数据应该是您传递给它的任何数据的精确副本。

同样,Word 文档也不“知道”它已被复制到 BLOB 对象,然后又被复制回来。

因此,问题几乎肯定是与您在一个或两个程序中处理 BLOB 数据有关。

请运行您的第一个程序将 .docx 文件复制到数据库中,然后运行第二个程序将其读回。然后使用逐字节工具比较两个文件。一种方法是打开命令窗口并键入:

fc/b Doc1.docx Doc2.docx

如果您可以使用一些更好的比较工具,请务必使用它们……但请确保它查看每个字节,而不仅仅是可打印的字符。

显然,您会发现差异,否则当第一个没问题时,Microsoft Word 不会在第二个上给您错误。一旦你看到了不同之处,希望你会明白出了什么问题以及如何解决它们。

几年前我遇到了类似的问题(我正在存储图形,但这是相同的基本问题)。结果证明文档大小受到了影响——我将 8005 个字节存储到 BLOB 对象中,当我读回它时,我得到了 8192 个字节。 NUL (0) 字节被附加到数据的末尾。

我当时的解决方案是在将 BLOB 数据写入数据库时​​在其末尾附加一个“X”。然后,当我读回它时,我会搜索数据中的最后一个“X”并将其删除,以及它后面的任何数据。这样,我就可以恢复原始数据。我应该做的是将数据长度与 BLOB 数据一起存储在数据库中。然后您可以将文件截断到该大小,从而消除损坏。

如果附加的 NUL 字节不是您的问题,那么您需要做其他事情来解决问题。但是在您知道发生了什么变化之前,您一无所知。有所作为。

关于asp.net - DB2 OS/390 BLOB 是否支持 .docx 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2829313/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com