代码之家  ›  专栏  ›  技术社区  ›  Ice

如果更改位于“备注”类型的字段中,则保存更改的行时出错

  •  0
  • Ice  · 技术社区  · 16 年前

    此特定行的其他列中的更改将保存为普通。 错误消息类似于:annother应用程序已更改行,因此更新已取消。

    和平

    更新:

    mdb绝对没有损坏。里面只有odbc连接,我们以只读模式使用它。问题一定是jet引擎和sql server的odbc驱动程序之间的问题,这就是我的想法。

    冰

    1 回复  |  直到 16 年前
        1
  •  1
  •   David-W-Fenton    16 年前

    如果您的数据存储在Jet/ACE后端,我会说您可能有一个损坏的备忘录指针。因为您的数据位于SQL Server中,并且通过ODBC访问,所以这不是答案。但由于其他人可能会在讨论中遇到Jet/ACE后端的问题,以下内容可能会有所帮助:

    在Jet/ACE表中,备忘录数据不会和其他字段内联存储。相反,数据存储在其他位置的单独数据页中,所有内联存储的内容都是指向第一个外部数据页的指针。该指针容易损坏,并且是数据丢失的常见原因。

    Tony Toews的一些链接(最好的来源):

    General Reference Source on Jet/ACE Corruption

    Corruption Symptoms

    在第二个示例中,搜索3197,这可能是您遇到的问题的错误号。这里有一个链接解释了如何对其进行故障排除。

    1. 我知道您没有使用Access,但对于Access表单,一个解决方案是避免绑定备注字段,而是在未绑定的文本框中编辑它们。在Access窗体的OnCurrent事件中,您将备忘录数据从窗体的fields集合复制到未绑定的文本框中,然后在文本框的AfterUpdate事件中,将其保存回窗体的底层记录集。

    推荐文章