正如我们在许多文档中所知,提到主机数组SQLCA.SQLERRD
的第3个元素,即sqlca.sqlerrd[2]
包含到目前为止由SQL语句处理的累积行数(就...而言) PRO * C)。
有人知道其他元素的重要性,即[0]
,[1]
以及它们的含义吗?
答案 0 :(得分:4)
根据error handling documentation,他们什么都不做;它们保留供将来使用,但它们开始看起来不太可能,它们实际上将被利用。 sqlerrd
被声明为long[6]
,但似乎只使用了[2]
和[4]
,后者是解析错误的SQL语句的偏移量。
有趣的是,他们不使用[0],[1]或[3];想知道他们是否在早期版本中用于其他东西。 This old informix link具有类似的结构,[2]
和[4]
具有相似的含义,因此可能暗示他们期望使用其他人的内容;但可能是一个毫无意义的巧合...
PostgreSQL seems to have the same structure和DB2一样,SQL Server有一些看起来相关的东西。它开始看起来像一个标准......虽然是甲骨文只是部分坚持的标准。
答案 1 :(得分:-1)
从“Informix指南到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语句。