我在使用 SQLite 数据库时遇到问题。我正在使用 SQLite ODBChttp://www.ch-werner.de/sqliteodbc/ http://www.ch-werner.de/sqliteodbc/安装 64 位版本并使用以下设置创建 ODBC:
我打开 Access 数据库并链接到数据源。我可以打开表、添加记录,但无法删除或编辑任何记录。我需要在 ODBC 端修复某些内容才能实现此目的吗?当我尝试删除记录时出现的错误是:
Microsoft Access 数据库引擎停止了该进程,因为您和另一个用户正在尝试同时更改相同的数据。
当我编辑记录时,我得到:
自您开始编辑以来,该记录已被其他用户更改。如果保存记录,您将覆盖其他用户所做的更改。
保存记录被禁用。只能复制到剪贴板或删除更改。
我最初尝试重现您的问题没有成功。我在 32 位测试虚拟机上使用了以下内容:
- 访问2010
- SQLite 3.8.2
- SQLite ODBC 驱动程序 0.996
我按照文档创建并填充了测试表 [tbl1]here http://www.sqlite.org/sqlite.html。我创建了一个 Access 链接表,当出现提示时,我选择了两列([一] 和 [二])作为主键。当我在数据表视图中打开链接表时,我能够毫无意外地添加、编辑和删除记录。
我可以看到我的设置和你的设置之间的唯一区别(除了我使用的是 32 位而你使用的是 64 位这一事实)是,在 ODBC DSN 设置中,我留下了Sync.Mode
设置为默认值NORMAL
,而你的似乎设置为OFF
.
尝试设置您的Sync.Mode
to NORMAL
看看这是否有影响。
编辑回复:评论
本例的解决方案如下:
一种可能的解决方法是创建一个新的 SQLite 表,其中包含所有相同的列以及一个新的 INTEGER PRIMARY KEY 列,Access 将“将其视为”自动编号。您可以在(当前)前四列上创建唯一索引,以确保它们保持唯一,但 Access 将使用新的“标识”(ROWID) 列来标识 CRUD 操作的行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)