在 RPG 中使用嵌入式 SQL 时,您通常会使用游标和dow
-loop 来处理结果中的所有行。循环中的条件以某种方式依赖于SQLCOD
和/或SQLSTT
SQLRPGLE 程序中的一些全局可用变量?
但是检查这些值的正确方法是什么?有些人建议SQLCOD = 0
其他人not (SQLCOD = +100 or SQLSTT = '02000')
。一个在所有警告上都失败了,另一个在某些错误上没有失败,所以我不满意。
为了说明我用一些代码做什么:
Pmain B
D PI
Dmy_ds E DS extname(SOME_TABLE)
D qualified
/free
exec sql
DECLARE cur CURSOR FOR
SELECT *
FROM some_table;
exec sql
OPEN cur;
exec sql
FETCH cur
INTO :my_ds;
dow sql_found();
exec sql
FETCH cur
INTO :my_ds;
enddo;
exec sql
CLOSE cur;
/end-free
Pmain E
Psql_found B
D PI N
/free
// insert return statement here...
/end-free
Psql_found E
我在这里寻找正确的返回语句,如果没有发生错误,这将使我遍历所有行,并在发生错误时让我离开。一些体面的方法来检查错误的奖励积分。