在 MS Access 中打开 Pervasive 表时出现“无法多次定义字段”错误

问题描述 投票:0回答:2

几个月前,我更新了一个使用 Pervasive v11 的系统。仅在该更新之后,我开始遇到 MS Access(2003 年和 2016 年测试)无法通过 ODBC 链接或导入某些 Pervasive 表的问题,并出现错误“无法多次定义字段”。任何失败的表中都不存在名称重复的字段。我以前没有任何问题,现在突然出现了。我知道的唯一变化是表结构。我什至创建了一个新的、非常简单的表,但仍然出现该错误。

系统零售商通知我,从 Pervasive v13 开始这不再是问题。如何在不升级的情况下解决这个问题?

ms-access odbc pervasive
2个回答
0
投票

除了升级之外,我不确定绝对答案是什么,但我确实找到了一个可能可以接受的解决方法(对我来说)。尽管以前不是问题,但根本问题似乎与表(可能还有字段)名称有关。 MS Access 对下划线不满意有时。老实说,我刚刚打开了另一个名称中包含两个下划线的表并且成功了,但是 MS Access 仍然无法打开我的带有两个下划线的自定义表。

我的解决方法是创建新表(或旧表的视图),其表名称中除了直接的字母字符外没有其他任何内容。如果视图足够简单(例如:

select * from tablename
),那么它就能够允许写访问,这也允许 MS Access 通过视图将数据写入该表。

我推测在某些情况下这个问题可能会扩展到带有下划线的字段名称。 PCC 中的测试表明,为字段提供别名确实允许对表进行写访问。我提到这一点是因为我看到一些视图导致表在通过该视图引用时具有只读访问权限。我相信当视图更改字段的数据类型或基本结构时会发生这种情况。例如,系统有一个表,其中日期存储为 6 个字符 (

060118
),但视图将其显示为 SQL_Date (
20180601
)。该视图不允许添加或更新行。

我确信我刚才所说的一些内容是可以用现代数据库系统完成的简单内容,不一定需要解释,但是 Pervasive 给了我很多其他数据库系统不会出现的问题,所以我拼写我发现什么有效。


0
投票

当我尝试将表从 Access 转换为数据库 (.dbf) 时遇到相同的警告时,我刚刚看到了您的问题。我自己创建的简单表格没有问题,但我从 data.gov 下载的数据(我已清理并删除了字段)有问题。我尝试删除下划线,正如上面的答案所暗示的那样,并且还删除了破折号(-它不喜欢它们)。然后我更改了 ID(主键)字段中的数据类型。 它被自动格式化为数字(它是一个 10 位整数)。在设计视图中,我将 id(主键)的数据类型更改为“文本”,从而解决了问题。之后我就没有遇到转换问题了。我不知道为什么。 另外,我必须缩短一些较长的字段名称。

© www.soinside.com 2019 - 2024. All rights reserved.