暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

检查 FLUSH 语句时出错

淮海路小佩奇 2023-09-28
124


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

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

如果未发生错误,则 SQLCODE 域或设置为错误代码或设置为零(0)。SQLERRD 数组的第三个元素 设置为成功地插入到数据库内的行数:

⚫ 如果一个行块成功地插入到数据库内,则 SQLCODE 设置为零(0),SQLERRD 设置 为行数。

⚫ 如果在 FLUSH 语句插入一个行块时发生错误,则 SQLCODE 显示是哪个错误,

SQLERRD 包含成功地插入的行数。(从缓冲区废弃未插入的行。)

提示: 在您遇到 SQLCODE 错误时,还存在相应的 SQLSTATE 错误。 GBase 8s 的客户机/服务器通 信协议,诸如 SQLI 和 DRDA®,支持 SQLSTATE 代码值。要获取这些代码的列表,以及关于如何 取得消息文本的信息,请参阅 使用 SQLSTATE 错误状态代码。

要对实际插入到数据库内的行数以及尚未插入的行数计数 .准备两个整数变量,例如,total 和 pending。

1. 在游标打开时,设置两个变量为 0。 

 2. 每次执行 PUT 语句时,增大 total 和 pending。 

 3. 只要执行 FLUSH 语句时,或关闭游标时,从 pending 抽取 SQLERRD 数组的第三个字 段。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论