gpt4 book ai didi

vba - MS Access ODBC 与 PostgreSQL 表写入冲突

转载 作者:行者123 更新时间:2023-11-29 12:45:30 28 4
gpt4 key购买 nike

所以我最近要把一个Access数据库的后端转移到Postgres上。将表链接到表单并更新 VBA 编码后,我尝试使用主键字段创建一条新记录。我通过后端验证该字段已成功创建,但是当我尝试将新数据插入字段并保存数据时,Access 总是给我这个错误。

“写入冲突:此记录自您开始编辑以来已被其他用户更改。如果您保存记录,您将覆盖其他用户所做的更改。”我只有两个选项:复制到剪贴板和删除更改。

最奇怪的是,如果我尝试打开现有记录并修改字段,我可以成功保存。写入冲突错误仅在我添加的新记录上弹出。

我试着在网上做一些研究,我已经在表中添加了时间戳,所有表都有 PKeys。谁能解释这背后的原因?非常感谢!

最佳答案

我知道这个问题很老,但问题仍然存在(在 MS Access 2013 上测试过),有些人可能正在寻找解决方案。

根据 PostgreSQL FAQ这是由 Access 和 Postgre 在 2 个特定情况下的细微差异引起的。在更新记录时, Access 会添加一些条件以确保记录未被任何人更改。如果它们中的任何一个失败,数据库返回没有记录被更新,这被解释为它们同时被修改。

空字符串

Access 不知道空字符串 ('') 和 NULL 之间的区别,而 postgre 知道。如果您在字段中留下空字符串,Access add ... AND column_name IS NULL" 在数据库中失败。目前只有解决方法 - 确保所有空字符串都存储为 NULL

时间戳

PostgreSQL 时间戳具有微秒精度,而 Access 仅支持毫秒。在这种情况下,Access 舍入多余部分,例如 2016-02-22 12:34:56.788952 转换为 2016-02-22 12:34:56.789比较失败。这可以通过降低数据库中时间戳的精度来解决。 timestamp 类型更改为 timestamp(3)(毫秒精度)或 timestamp(0)(秒精度).

希望对您有所帮助。

关于vba - MS Access ODBC 与 PostgreSQL 表写入冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25088970/

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