【问题标题】:Open a .doc file stored in SQL Server image column打开存储在 SQL Server 图像列中的 .doc 文件
【发布时间】:2013-06-07 10:07:25
【问题描述】:

我有许多 .doc 文件存储在 SQL Server 2008 IMAGE 列中。我不知道这种数据类型在 2008 年如何仍然存在,但我清楚地可以看到它。软件数据库太旧了,数据库服务器必须升级到2008。无论如何-不知何故-软件仍然运行良好。

上个月,我的公司决定采用 Web 解决方案,但要保持所有数据完好无损。我为此开发了整个系统,一切都非常顺利 - 代替文件......每当我尝试从 SQL IMAGE 列“下载”字节时,我都会得到文件,但它已损坏(至少我'我在 MS Word 中得到了很多愚蠢的字符)。但是当我插入新文件(存储在IMAGE col),然后下载它时,一切都很顺利。

这个世界上有人知道它有什么问题吗?

这是 DB 中一个损坏文件的链接: https://hotfile.com/dl/226441204/438414c/testFile.doc.html

【问题讨论】:

  • 如果新记录工作正常,那么要么现有记录已损坏,要么现有记录未像您想象的那样存储。
  • 当你升级服务器时,你是否改变了原来的排序规则?
  • 非常好的建议。这将是我要尝试的第一件事。明天早上我会回到这里报告......

标签: c# asp.net sql-server file-upload


【解决方案1】:

根据您的描述,将数据库服务器升级到 2008 时出现问题。

【讨论】:

  • 嗯,有什么可能的解决方案吗?我有数据库备份,如何才能成功迁移?
  • 我建议你在dba.stackexchange.com 上询问这个问题,特别是在使用图像列进行升级时会发生什么。或者,您可以编写一个小程序,从旧数据库版本中读取文件并在升级后将其写入。
  • 感谢您为我指明这些方向。一旦我尝试了这些建议,我就会回来报告......现在谢谢。
【解决方案2】:

经过几天的调查,我终于找到了解决方案。由于数据库是由第 3 方制作的,我必须知道他们的文件保存逻辑才能使其正常工作。显然,排序规则和其他东西太容易解决问题了。然后我想到了 JetBrains DotPeek,一个很棒的 .NET 反编译器。它拥有我确定确切储蓄流量所需的一切。我发现文件是用受密码保护的流保存的。很容易找到密码,因为现在我打开了所有代码。 Dotfuscating 稍微加强了我的研究,但现在一切都很好......终于!感谢所有试图帮助我解决问题的人......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-04
    • 2011-08-02
    • 1970-01-01
    • 2012-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-02
    相关资源
    最近更新 更多