PUT 和 FLUSH之后的状态代码 ——GBASE南大通用
当程序执行 PUT 语句时,程序应测试是否成功地将该行放入缓冲区中。如果新的行适合 该缓冲区,则 PUT 的唯一操作就是将该行复制到缓冲区。在此情况下不可发生错误。
然 而,如果该行不适合,则为了插入将整个缓冲区负载传到数据库服务器,可发生错误。 返回到“SQL 通信区域”(SQLCA)内的值为程序提供它需要的信息,来整理每一种情况。 如果未发生错误,则在每个 PUT 语句之后,将 SQLCODE 和 SQLSTATE 设置为零,如 果发生错误,则设置为负的错误代码。
数据库服务器将 SQLERRD 的第三个元素设置为实际插入到表内的行数,如下
• 零,如果仅将新行移至缓冲区
• 缓冲区中的行数,如果插入缓冲区负载而未发生错误
• 错误发生之前插入了的行数,如果发生错误 请再次阅读代码来了解如何使用 SQLCODE(请参阅前面的示例)。首先,如果 OPEN 语 句发生错误,则由于 WHILE 条件失败,不执行该循环,则不执行 FLUSH 操作,且该事 务回滚。其次,如果 PUT 语句返回一个错误,则由于 WHILE 条件的缘故结束该循环, 不执行 FLUSH 操作,且该事务回滚。仅当该循环至少一次生成足够的行来填充缓冲区, 此条件才可发生。否则,PUT 语句不可生成错误。
程序可能结束该循环,而这些行还在缓冲区中,可能未插入任何行。此时,SQL 状态为零,
且发生 FLUSH 操作。如果 FLUSH 操作产生一错误代码,则该事务回滚。仅当成功地执
行所有操作,才提交该事务。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




