正如我们所知,在许多文档中都提到了 Host 数组的第三个元素 SQLCA.SQLERRD IE。 sqlca.sqlerrd[2] 包含迄今为止 SQL 语句处理的累积行数(以 Pro*C 表示)。

有人知道其他元素的重要性吗? [0],[1] 它们意味着什么?

有帮助吗?

解决方案

根据 错误处理文档, ,他们什么也不做;它们被保留以供将来使用,尽管它们看起来不太可能真正被使用。 sqlerrd 被声明为 long[6], , 但只有 [2][4] 似乎被使用,后者是 SQL 语句中解析错误的偏移量。

有趣的是,他们不使用 [0]、[1] 或 [3];想知道它们在早期版本中是否被用于其他用途。 这个旧的 informix 链接 具有相似的结构和相似的含义 [2][4], ,因此可能会暗示他们希望将其他人用于什么用途;但可能是一个毫无意义的巧合......

PostgreSQL 似乎有相同的结构, ,就像 数据库2, , 和 SQL服务器 有一些看起来相关的东西。它开始看起来像一个标准......尽管 Oracle 仅部分遵守这一规定。

其他提示

来自“Informix SQL 指南”(1998 年 2 月):

(“第一”、“第二”等因为并非所有语言都以 0 开头索引数组。)

首先 - 在成功执行 SELECT、UPDATE、INSERT 或 DELETE 语句的 PREPARE 语句后,或者打开选择游标后,此字段包含受影响的估计行数。

第二 - 当 SQLCODE 包含错误代码时,此字段包含零或附加错误代码(称为 ISAM 错误代码),用于解释主要错误的原因。成功插入一行后,此字段包含为该行生成的任何 SERIAL 值的值。

第三 - 成功执行多行插入、更新或删除操作后,此字段包含已处理的行数。在以错误结束的多行插入、更新或删除操作之后,此字段包含在检测到错误之前已成功处理的行数。

第四 - 在成功执行 SELECT、UPDATE、INSERT 或 DELETE 语句的 PREPARE 语句后,或者打开选择游标后,此字段包含磁盘访问的估计加权总和和已处理的总行数。

第五 - 在 PREPARE、EXECUTE IMMEDIATE、DECLARE 或静态 SQL 语句中出现语法错误后,此字段包含检测到错误的语句文本中的偏移量。

第六 - 成功提取所选行或成功插入、更新或删除操作后,此字段包含已处理的最后一行的 rowid(物理地址)。该行为值是否对应于数据库服务器返回用户的行取决于数据库服务器如何处理查询的方式,尤其是对于选择语句。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top