【问题标题】:borland sdac inserted record is not shown when I try to fetch record from within the same connection当我尝试从同一连接中获取记录时,没有显示 borland sdac 插入的记录
【发布时间】:2014-12-03 05:13:33
【问题描述】:

我正在使用 borland 6 和 sdac5.0 与 MS Access 数据库进行交互。但是,当我将一条记录插入数据库并尝试在同一连接中获取该表的所有数据时,新插入的数据不会显示。

我注意到在 MS Access Jet4.0 中有一个关于这个问题的错误。 (https://support.microsoft.com/kb/239114) 不幸的是,我的系统是 Windows 7,我检查了 Jet.dll,并确认这是最新版本,Microsoft 已确认问题已解决。

只是想知道有什么方法可以强制数据库将数据更新到硬盘吗?我可以牺牲一些性能来保证数据的完整性。

【问题讨论】:

  • 您是否尝试过在插入后显式关闭连接,然后重新打开以进行读取,看看是否有什么不同?
  • @GordThompson 是的,我已经尝试过了,似乎记录仍然丢失。但是过了一会,做同样的fetch操作,显示了这段时间内所有添加的记录
  • 恐怕我无法提供有关“sdac5.0”如何管理连接的任何具体见解,但相关问题here可能会引起人们的兴趣。
  • @GordThompson 我尝试您的建议关闭连接并重新打开它。它确实使数据库“更新”了新记录。如果你愿意回答。我会接受它作为答案。非常感谢您的帮助。

标签: ms-access caching jet borland-c++


【解决方案1】:

类似于相关问题here,在某些情况下,新插入的行可能需要大约 5 秒才能在 Access 数据库中显示。这可能是因为 Access 数据库是共享文件数据库,并且 Access 数据库引擎可能会做出一些努力来“批量”提交,而不是在收到 INSERT/UPDATE 查询时立即命中数据库文件。

为了让所有用户(其他连接)都能“立即”使用更新,我们可以通过简单地关闭我们执行更新的连接来强制更改回数据库文件。

【讨论】:

    猜你喜欢
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-23
    • 1970-01-01
    相关资源
    最近更新 更多