SQL 编程 / 调用数据库服务器 |
在 SQLCODE 中可报告的某些错误代码反映一般的问题。数据库服务器可在 SQLERRD 的第二个字段中设置更详细的代码,显示数据库服务器 I/O 例程或操作系统遇到的错误。
字段 | 解释 |
---|---|
第一个 | 对于 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 使用此特性来定位游标。)