多少行受到了影响?

当您的程序使用游标来选择行时,它可测试 SQLCODE 是否为 100(或 SQLSTATE 是否为 02000),即“数据的结束”返回代码。设置此代码来指示没有行或没有更多的行满足该查询条件。对于不符合 ANSI 的数据库,仅跟在 SELECT 语句之后在 SQLCODE 或 SQLSTATE 中设置“数据的结束”返回代码;不跟在 DELETE、INSERT 或 UPDATE 语句之后使用它。对于符合 ANSI 的数据库,对于不影响任何行的更新、删除和插入操作,也将 SQLCODE 设置为 100

找不到数据的查询是不成功的。然而,仍将碰巧未更新或插入行的 UPDATE 或 DELETE 语句视为成功。它更新了或删除了它的 WHERE 子句表明它应更新或产出的行集;然而,该集合为空。

同样地,即使当插入了的行的来源是 SELECT 语句,且该 SELECT 未选择任何行,INSERT 语句也不设置“数据的结束”返回代码。因为该 INSERT 语句插入了要求它插入的行数(即,零行),因此,该语句成功。

要了解插入了、更新了或删除了多少行,程序可测试 SQLERRD 的第三个元素。行的计数在那里,这与 SQLCODE 中的值(零还是负的)无关。