【问题标题】:Inactivity causes data loss in VB6 Jet.OLEDB.4.0不活动导致 VB6 Jet.OLEDB.4.0 中的数据丢失
【发布时间】:2013-01-17 20:00:51
【问题描述】:

我有一个使用 Jet.OLEDB.4.0 的 mdb 文件的 VB6 应用程序。该应用程序在保存和检索数据方面做得很好,除非我让它在打开的记录集上闲置半小时左右。

如果我让应用程序闲置一段时间,然后再次尝试使用该应用程序,它会丢失记录。似乎某些东西,数据或 dll,在空闲期间自动移出 ram,并且无法足够快地重新加载,因此当我再次开始使用该程序时,一切都得到协调并且所有记录都在那里。

如果我能知道 Windows 何时将东西移动到 ram,我可以通过在移动之前使用 sql update 命令将记录集更新到磁盘并设置一个布尔变量来提醒程序当应用程序用户返回程序时重新打开连接和记录集。

我不知道如何判断 Windows 何时将或必须将东西移出 ram。有没有办法知道 Windows 何时将东西移出 ram 并已将东西移出 ram?

【问题讨论】:

  • 很难知道这里会发生什么。更改的连接记录集需要在锁定超时到期之前更新,这可能是此类问题的根源之一。

标签: vb6 oledb ado jet


【解决方案1】:

有没有办法知道 Windows 何时将东西移出 ram 并已将东西移出 ram?

在 VB6 中并非如此。我会尝试使用计时器定期测试连接。像 10 秒的间隔根本不会给系统带来太大的压力。您可以对其进行测试以查看它是否以及何时关闭,以及当时是否发生了其他事情。检查您的操作系统日志。您可能会发现它永远不会因慢速计时器检查而关闭,这可能是您的解决方案。

【讨论】:

    猜你喜欢
    • 2018-10-25
    • 2012-05-24
    • 1970-01-01
    • 2021-11-27
    • 2023-03-03
    • 2015-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多