检查 FLUSH 语句时出错

SQL 通信区域(sqlca)结构包含关于每一 FLUSH 语句的成功信息以及成功地插入的行数。每一 FLUSH 语句的结果在 sqlca 的这些字段描述:sqlca.sqlcodeSQLCODEsqlca.sqlerrd[2]

在您以插入游标使用数据缓冲时,直到刷新该缓冲区才会发现错误。例如,仅在刷新缓冲区时,才能发现与列的预定数据类型不兼容的输入值。在发现错误时,缓冲区中位于错误之后的任何行都不会插入;它们从内存中丢失。

如果未发生错误,则 SQLCODE 域或设置为错误代码或设置为零(0)。SQLERRD 数组的第三个元素设置为成功地插入到数据库内的行数:
提示: 在您遇到 SQLCODE 错误时,还存在相应的 SQLSTATE 错误。 GBase 8s 的客户机/服务器通信协议,诸如 SQLI 和 DRDA®,支持 SQLSTATE 代码值。要获取这些代码的列表,以及关于如何取得消息文本的信息,请参阅 使用 SQLSTATE 错误状态代码

要对实际插入到数据库内的行数以及尚未插入的行数计数

  1. 准备两个整数变量,例如,totalpending
  2. 在游标打开时,设置两个变量为 0
  3. 每次执行 PUT 语句时,增大 totalpending
  4. 只要执行 FLUSH 语句时,或关闭游标时,从 pending 抽取 SQLERRD 数组的第三个字段。