操作必须是可更新的查询 - VB Script, Paradox Table

Posted

技术标签:

【中文标题】操作必须是可更新的查询 - VB Script, Paradox Table【英文标题】:Operation must be an updateable query - VB Script, Paradox Table 【发布时间】:2013-04-04 09:03:45 【问题描述】:

我正在使用安装了 BDE 管理员和 Access 2007 的 Win XP 机器。我能够毫无问题地打开现有 Paradox 表并执行选择查询,但在尝试 INSERT/UPDATE 时有一些非常奇怪的行为。我什至可以创建一个新的 Paradox 表,它具有相同的行为。这是示例代码:

 ' create new table
conObj.Execute "CREATE TABLE test (id INT, comment VARCHAR(30))"

' first insert works fine
conObj.Execute "INSERT INTO test VALUES (1, 'something')"

' second insert fails for unknown reason
conObj.Execute "INSERT INTO test VALUES (2, 'something else')"

我尝试过使用 Jet 4.0、MS Access Paradox 驱动程序和本机 Paradox 驱动程序连接字符串,但都产生了相同的结果。在第二个插入语句中,它会引发错误:

操作必须是可更新的查询

我在帮助网站的论坛和页面上阅读了大量帖子,这些帖子告诉我这个错误是由文件权限问题引起的。运行此脚本的帐户是管理员组的一部分,我已更改文件权限以允许所有人组完全控制 db 文件,但这没有任何改变。

微软支持发布的这个页面没有解决问题:http://support.microsoft.com/kb/175168

此外,我可以创建一个新表,但每当我尝试创建 PRIMARY KEY 或 UNIQUE 字段时,我都会收到一条错误消息:

“索引_[随机字符] 不是有效名称。”

【问题讨论】:

【参考方案1】:

试试 "CREATE TABLE 测试(id INT,注释 VARCHAR(30),主键(id))"

【讨论】:

我确实尝试过。不幸的是,当我在任何情况下尝试创建主键或唯一字段时,都会引发某种类型的错误。【参考方案2】:

我对 Paradox 数据库了解不多,但这确实是一次学习经历。即使我有一个名为 table.db 的表文件,也不足以存储多行数据。我还需要其他几个文件来插入或更新 paradox 数据库:

table.DB
table.PX
table.VAL
table.XG0
table.XG1
table.YG0
table.YG1

我在另一个生成悖论数据库的程序中四处寻找,发现当我从中复制一个空白数据库以及它生成的其他文件时,我能够毫无问题地插入和更新。我不知道这些文件是做什么用的,也不知道为什么它们需要存在才能插入或更新,但让它们存在解决了我的问题。

【讨论】:

以上是关于操作必须是可更新的查询 - VB Script, Paradox Table的主要内容,如果未能解决你的问题,请参考以下文章

旧访问更新声明

vb.net SQL更新查询无法完成

更新行给出错误操作必须使用可更新查询

在 VB 和 Access 中更新查询问题

Access 2016 - 简单更新查询给出“操作必须使用可更新查询”错误

操作必须使用可更新查询/SQL - VBA