4

正如我们所知道的,在许多文档中都提到了 Host 数组的第三个元素,SQLCA.SQLERRDsqlca.sqlerrd[2]包含到目前为止 SQL 语句处理的累积行数(就 Pro*C 而言)。

有人知道其他元素 ie 的重要性[0][1]以及它们的含义吗?

4

2 回答 2

5

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

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

PostgreSQL 和DB2似乎有相同的结构,而SQL Server有一些看起来相关的东西。它开始看起来可疑地像一个标准......尽管甲骨文只是部分遵守。

于 2012-10-03T20:45:02.163 回答
-1

摘自“Informix Guide to SQL”(1998 年 2 月):

('First'、'Second' 等,因为并非所有语言都索引以 0 开头的数组。)

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

第二 - 当 SQLCODE 包含错误代码时,此字段包含零或附加错误代码,称为 ISAM 错误代码,它解释了主要错误的原因。在单行成功插入操作后,此字段包含为该行生成的任何 SERIAL 值的值。

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

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

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

第六 - 在成功获取选定行或成功插入、更新或删除操作后,此字段包含已处理的最后一行的 rowid(物理地址)。此 rowid 值是否对应于数据库服务器返回给用户的行取决于数据库服务器如何处理查询,特别是对于 SELECT 语句。

于 2013-12-04T23:17:02.363 回答