因为 jdbc odbc 桥不再可用(请参阅此问题/答案),我尝试了 UCanAccess,它可以很好地读取数据库,但在 Windows 10 上,在写入尝试时会引发错误:([CONCURRENT_PROCESS_ACCESS] - File marked as read only. Notice that only one process (one VM) for time can access in writing mode.
)。
在 Windows 8.1 和 Windows 7 上使用 UCanAccess 驱动程序可以完美地读取和写入相同的代码。
我目前无法修补,因为我没有 Windows 10 系统;这些测试由高级用户在单个 Windows 10 安装上执行。用户可以完全访问有问题的 mdb 文件。测试了 mdb 文件的多个路径位置 ( c:\ProgramData
, Downloads
),结果相同:读取正常,写入失败。
如果任何 Windows 10 用户想要在各种目录中自己测试它并可能操纵权限,那就太好了。
这是我正在使用的 mdb 文件的链接。这是测试程序的链接(作为 exe)。这是源代码的链接。
测试过程是放置 mdb 文件,然后使用路径参数运行测试程序。因此,在 Windows 命令提示符下,类似于:
TestDbAccess c:\my\dir
c:\my\dir
你把mdb文件放在哪里。
更新:我应该在最初的问题中包括在实际硬件上运行是期望的,而不是在 VBox 中运行虚拟化。
UPDATE2:错误警报: 有问题的 mdb 文件确实是“访问 97”级别,基于文件的字节 20。问题在于,负责创建 mdb 文件的组件有时会以某种方式将其创建为“Access 2000”,而在其他时候则创建为“Access 97”。究竟是如何发生的仍然是一个谜,但它似乎并不依赖于底层操作系统版本。我对遇到 CONCURRENT_PROCESS_ACCESS 错误的任何人的建议:相信它!