【发布时间】:2011-03-14 12:38:57
【问题描述】:
我有两个 VC++ 6 应用程序在通用 Access 2000 数据库中写入/更新数据 - 两个应用程序都从不同的数据记录器下载信息。
在尝试进行添加/编辑/更新时,我们经常会遇到异常:
(3260) 无法更新;目前 被机器上的用户“管理员”锁定 'abc123'。
我确信问题与数据库中的记录锁定有关。
我们正在使用 CDaoRecordset 来访问数据。从阅读文档看来,默认设置是乐观地锁定记录所在的数据库页面。如果另一个进程尝试编辑/更新同一页面中的记录,他们会收到我们看到的错误。
此时迁移到 SQL Server 不是一个选项 - 由于事物的结构方式,这不是一个简单的更改。
我想知道是否可以使受影响表中的记录足够大,以便每个 2k 数据页中只有一条记录。如果我使每条记录的长度为 1100 字节,那么每条记录都应该有自己的页面,从而解决了锁定问题。我知道它会占用更多磁盘空间,但目前这不是问题,因为受影响的表的容量非常小。
这行得通吗? Access 2000 中的记录可以分成两页吗?
【问题讨论】:
标签: database visual-c++ ms-access