首页 > 解决方案 > 存储的数据显然在没有警告的情况下消失了

问题描述

摘要: CRUD 查询在我的 VB6 + SQL 2000 应用程序中没有可靠地持久化,导致数据丢失。如何/我改变什么来解决这个行为?我可以在不坚持时始终坚持或显示错误,但目前问题默默地发生。

我不确定要在此处包含哪些来源,欢迎提出建议。

细节:

我继承了一个非常古老(20 年以上)的桌面应用程序,用 VB6 编写并使用 SQL 2000 数据库来存储其数据。

似乎有时(尚未确定明确的原因,它似乎是随机发生的)通过 INSERT / UPDATE 写入数据库的数据没有持久化,而是保存在某种缓冲区中:选择数据表明一切都是正常,一切正常,除非应用程序关闭并重新打开,数据不存在

为了进一步澄清这个问题,这里有一个简化的场景:

第一天

. 应用程序启动

. 应用程序执行一堆 SELECT 来查询当天的初始数据

. 用户在应用程序中输入一些数据并按下“保存”按钮,在幕后在数据库中执行一些插入/更新以(显然)持久化数据。

. 在操作过程中,所有新输入的数据都可以处理并正常显示

. 晚上,用户运行应用程序的一项功能,该功能充当每日摘要(这里涉及到很多 SELECTing),他们可以看到他们处理的所有数据,一切看起来都很正常。

. 应用程序已关闭(更多 CRUD 发生在幕后)

第 2 天

. 应用程序启动

. 应用程序执行一堆 SELECT 来查询当天的初始数据

. 用户可以看到初始数据并没有与他们前一天所做的“总结”

. DBA 的进一步检查表明,昨天的一大块数据不存在

用户和事件查看器(或其他任何东西)都不会显示有关此行为的错误。

我不知道问题可能出在哪里,搜索互联网提供的信息很少(也许技术太旧,或者问题很少见?)

显然,我可以解决这个问题,结果是数据始终保持不变并且用户很满意。当数据不持久时(无论原因是什么),应用程序显示错误并阻止操作,我也可以接受。

我欢迎有关将哪些信息附加到问题以帮助解决问题的建议(代码非常大,我不确定什么是相关的)。

根据评论展开

标签: sql-servervb6persistencecrudsql-server-2000

解决方案


推荐阅读