通过Access中的ODBC链接表更新SQLite数据库

Her*_*rro 13 sqlite ms-access odbc ms-access-2010 sqlite-odbc

我遇到了SQLite数据库的问题.我正在使用http://www.ch-werner.de/sqliteodbc/中的SQLite ODBC . 安装了64位版本并使用以下设置创建了ODBC:

在此输入图像描述

我打开Access数据库并链接到数据源.我可以打开表,添加记录,但不能删除或编辑任何记录.有没有什么我需要修复ODBC端允许这个?我尝试删除记录时遇到的错误是:

Microsoft Access数据库引擎停止了该过程,因为您和另一个用户正在尝试同时更改相同的数据.

当我编辑记录时,我得到:

自您开始编辑以来,其他用户已更改该记录.如果保存记录,则将覆盖其他用户所做的更改.

保存记录已禁用.只能复制到剪贴板或删除更改.

Gor*_*son 9

我最初尝试重新创建您的问题是不成功的.我在32位测试VM上使用了以下内容:

  • 访问2010
  • SQLite 3.8.2
  • SQLite ODBC驱动程序0.996

我创建并填充了测试表[tbl1],如此处所述.我创建了一个Access链接表,当提示我时,我选择了两列([1]和[2])作为主键.当我在数据表视图中打开链接表时,我能够无事故地添加,编辑和删除记录.

我可以在我的设置和你的设置之间看到的唯一区别(除了我在32位而你在64位上的事实)是在ODBC DSN设置中我将Sync.Mode设置保留为其默认值NORMAL,而你的设置似乎是设置为OFF.

尝试设置你Sync.ModeNORMAL,看看是否有所作为.

编辑重新:评论

在这种情况下的解决方案如下:

一种可能的解决方法是创建一个包含所有相同列的新SQLite表以及一个新的INTEGER PRIMARY KEY列,Access将"看到"为自动编号.您可以在前四列上创建一个唯一索引(以确保它们保持唯一),但新的"身份"(ROWID)列是用于标识CRUD操作行的新列.