gpt4 book ai didi

Access 中的 Sqlite 链接表再次给出 #deleted 值

转载 作者:行者123 更新时间:2023-12-03 16:15:38 25 4
gpt4 key购买 nike

情况:MS Access(恰好是 2010 年)使用 SQLite ODBC 驱动程序 (0.997) 链接到 SQLite (3.x) 数据库中的表。

问题:所有行中所有列中的数据值显示为“#Deleted”。

解决方案:这是一个“回答我自己的问题”类型的帖子,下面有一个解决方案。

编辑:将解决方案移至答案部分。

最佳答案

早些时候,我在 stackoverflow 中搜索,发现一个类似的问题(Access 中的 sqlite 链接表给出 #deleted 值)有一个很好的答案,结果证明在我的情况下不适用。所以我在这里添加一些信息。
这里解释了一半的问题:http://support.microsoft.com/kb/128809 “链接的 ODBC 表出现“#Deleted”错误。”
上述链接在 2021 年 7 月不再可用。但是,您可能会在 https://dev.mysql.com/doc/connector-odbc/en/connector-odbc-errors.html 中找到对“#DELETED# Access Reported Records”的很好解释。
这说明 Access (Jet) 希望表具有唯一索引,以便能够在必要时插入/更新表。
如果您的 SQLite 表没有唯一索引(或主键),那么 Access 将只允许对该表进行读取 Access ——您无法在 Access 中编辑该表的数据,但数据显示正常。
要使表可更新,您可以修改 SQLite 代码(或使用 SQLite 工具)以向表添加索引。
如果您的 PK/唯一索引碰巧使用了 TEXT 字段,那么 SQLite 就可以了。但是,当您在 Access 中链接到它时,Access 将显示 #Deleted 指示。
事件链似乎是:
Access/Jet 注意到唯一索引,并尝试使用它。但是,SQLite TEXT 字段是可变长度的,并且可能是 BLOB。这显然不满足 Access 对唯一索引字段的要求,因此 #Delete 指示。
为避免该问题,索引必须是 Access 可接受的 SQLite 字段类型。我不知道可接受的类型的完整列表,但 INTEGER 有效。
希望这可以帮助某人。

关于Access 中的 Sqlite 链接表再次给出 #deleted 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22837151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com