Access中的Sqlite链接表再次给出#deleted值
情况:MS Access(恰好是2010)使用SQLite ODBC驱动程序(0.997)链接到SQLite(3.x)数据库中的表.
问题:所有行中所有列中的数据值显示为“#Deleted”. 解决方案:这是一个“回答我自己的问题”的帖子,下面有一个解决方案. 编辑:将解决方案移至答案部分. 解决方法早些时候,我在stackoverflow中搜索,发现了一个类似的问题(Access中的sqlite链接表给出了#deleted值),并给出了一个很好的答案,结果证明在我的情况下是不适用的.所以我在这里添加一些信息.这里解释了一半的问题:链接的ODBC表有http://support.microsoft.com/kb/128809‘“#Deleted”错误. 这解释了Access(Jet)希望表具有唯一索引,以便能够在必要时插入/更新表. 如果您的SQLite表没有唯一索引(或主键),则Access将只允许对表的读访问 – 您无法在Access中编辑表的数据,但数据显示正常. 要使表更新,您可以修改SQLite代码(或使用SQLite工具)以向表中添加索引. 如果您的PK /唯一索引碰巧使用TEXT字段,那对SQLite来说就没问题了.但是,当您在Access中链接到它时,Access将显示#Deleted指示. 事件链似乎是: Access / Jet会注意到唯一索引,并尝试使用它.但是,SQLite TEXT字段是可变长度的,可能是BLOB.这显然不符合Access对唯一索引字段的要求,因此#Delete指示. 为避免该问题,索引必须是Access将接受的SQLite字段类型.我不知道可接受的完整类型列表,但INTEGER可以工作. 希望这有助于某人. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |