【问题标题】:Microsoft Access can't update large Memo (Long Text) fields on a linked SQLite3 ODBC table: sequence error (#-1)Microsoft Access 无法更新链接的 SQLite3 ODBC 表上的大型备注(长文本)字段:序列错误 (#-1)
【发布时间】:2017-04-27 06:21:11
【问题描述】:

Microsoft Access 无法更新 ODBC 链接的 SQLite 表上的大型备注字段(长文本)。限制在 2300 到 5152 个字符之间。它可以是更新查询、DAO 或 ADO rs.Edit 或使用 Ctrl-C / Ctrl-V + mouse 直接复制粘贴到链接表中 - 没关系。

错误信息:

更新查询或手动复制粘贴:

ODBC-update on a linked table 'Adobe_AdditionalMetadata' failed.
sequence error (#-1)

rs.Edit 行上的 DAO、VBA:

Run-time error '3027':
Cannot update. Database or object is read-only.

rs.Update 行上的 ADO、VBA:

Run-time error '-2147217887 (80040e21)':
ODBC-update on a linked table 'Adobe_AdditionalMetadata' failed.

已安装的驱动程序:
http://www.ch-werner.de/sqliteodbc/(SQLite3 ODBC 驱动程序)
访问链接字段属性:长文本
原始 SQLite 字段属性:TEXT NOT NULL DEFAULT ''
(访问几乎将所有字段都视为备忘录)
这是 Adob​​e Lightroom“Lightroom Catalog.lrcat”文件的“Adobe_AdditionalMetadata”表中的“xmp”字段。

更小的备注字段可以轻松更新。

【问题讨论】:

  • 不知道这是否适合您的情况,但我似乎通过在 DSN 属性中启用“No WCHAR”然后删除并重新创建链接表来避免此问题。
  • 谢谢,这太容易了...使用更新查询进行更新,复制粘贴和 ADO VBA 现在可以正常工作,DAO VBA 仍然显示相同的错误消息。你能解释一下为什么要设置 No WCHAR 吗?
  • 有趣。 DAO.Recordset 更新(rs.Editrs.Update)对我有用。
  • 以防万一:使用 Lightroom(或其 SDK)以外的应用程序上传或修改 .lrcat 文件(如“Lightroom Catalog.lrcat”)中的数据不仅有风险(如果这样做可能会损坏此类文件它不正确),但在这种情况下您也可能不会得到 Adob​​e 的任何支持:forums.adobe.com/message/9210122#9210122 Lightroom Catalog.lrcat 文件和 Lightroom 许可证中的数据修改

标签: ms-access sqlite odbc memo


【解决方案1】:

一种可能的解决方法是为 ODBC DSN 启用“No WCHAR”选项:

(可能必须重新创建 Access 中现有的 ODBC 链接表才能使更改生效。)

【讨论】:

  • > 可能必须重新创建 Access 中现有的 ODBC 链接表 - 所有表,不仅是要更新的备注字段,因为当仅重新创建一个表时,Access 会在某些查询上崩溃。看起来有点不一致。
猜你喜欢
  • 2017-08-14
  • 2016-04-24
  • 2014-06-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-14
  • 1970-01-01
  • 2014-09-12
  • 1970-01-01
相关资源
最近更新 更多