【发布时间】:2010-01-08 14:14:10
【问题描述】:
我有一个 Delphi 2009 应用程序,它尝试使用 Jet 4.0 OLE DB 提供程序以 cmShareDenyWrite 模式打开到 Microsoft Access .MDB 文件的 ADO 连接 (dbGo)。目标是以读/写模式打开 .MDB 文件,但要防止其他应用程序以写模式打开文件:其他应用程序同时以读模式访问文件是可以的——事实上,这就是重点。
我正在使用 TADOConnection、TADOQuery(和/或 TADOTable)和 TDataSource 的组合,连接到数据感知控件。我通过阅读文档(以及阅读和阅读)的理解是,将连接字符串中的访问权限设置为“共享拒绝写入”就可以了。
我打开数据库没有问题:连接成功后在ADOConnection中返回的模式是cmShareDenyWrite,正如预期的那样。使用我的数据感知控件导航数据集没有问题。但是,当我尝试更改记录并发布结果时,我无法:数据库似乎处于只读模式。
基本上,似乎为 ADO 访问 MDB 表选择“共享拒绝写入”会拒绝 ME 写入文件的能力。要么我遗漏了一些东西,要么这是 JET 的 OLE DB 提供程序不受支持的方案。
有没有人知道我哪里出错了,或者我如何才能实现我最初的目标?
提前致谢,
约翰·贝内特
【问题讨论】:
标签: database delphi delphi-2009 ado jet