GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司 - 204 -
在 SQLCODE 中可报告的某些错误代码反映一般的问题。数据库服务器可在 SQLERRD
的第二个字段中设置更详细的代码,显示数据库服务器 I/O 例程或操作系统遇到的错误。
将 SQLERRD 数组中的整数设置为跟在不同语句之后的不同值。在 GBase 8s ESQL/C 中,
仅使用数组的第一个和第四个元素。下表展示如何使用这些字段。
表 1. SQLERRD 的字段
字段
解释
第一个
对于 SELECT、UPDATE、INSERT 或 DELETE 语句,在成功的 PREPARE 语句之
后,或在打开 Select 游标之后,此字段包含估计的受影响的行数。
第二个
当 SQLCODE 包含一个错误代码时,此字段包含零或附加的错误代码,称
为 ISAM 错误代码,
说明主要错误的原因。
在对单个行的成功的插入操作之
后,
此字段包含任何 SERIAL、
BIGSERIAL 或 SERIAL8 值为那行生成的值。
(然
而,当通过表上的触发器,或通过视图上的 INSTEAD
OF 触发器,将一序列列
作为触发器的活动直接插入时,不更新此字段。)
第三个
在成功的多行插入、更新或删除操作之后,此字段包含处理了的行数。在以错
误结束的多行插入、
更新或删除操作之后,
此字段包含在检测到该错误之前成
功地处理了的行数。
第四个
在对于 SELECT、UPDATE、INSERT 或 DELETE 语句的成功的 PREPARE 语句之
后,
或在已打开了选择游标之后,
此字段包含磁盘访问的与处理的全部行的估
计加权总和。
第五个
在 PREPARE、EXECUTE
IMMEDIATE、DECLARE 或静态的 SQL 语句中的语法错误
之后,此字段包含检测到该错误的位置的语句文本的偏移量。
第六个
在对选择了的行的成功的访存之后,或成功的插入、更新或删除操作之后,此
字段包含处理了的最后一行的 rowid(物理地址)。此 rowid 值是否对应于
数据库服务器返回给用户的行,
依赖于数据库服务器处理查询的方式,
特别是
对于 SELECT 语句。
第七个
保留。
这些附加的详细信息可是有用的。例如,您可使用第三个字段中的值来报告删除了或更新
了多少行。当您的程序准备一个用户输入的 SQL 语句并发现错误时,第五个字段中的值
使得您能够向用户显示错误的精确点。(当您在错误之后请求修改语句时,DB-Access 使
用此特性来定位游标。)
GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司 - 205 -