在RPG中使用嵌入式SQL时,通常最终会得到一个游标和一个用于处理结果中所有行的回调函数。循环中的条件在某种程度上取决于SQLCOD
和/或SQLSTT
,SQLRPGLE程序中的一些全局可用变量?在ILE RPG中检查sql找到的条件的正确方法是什么?
但是,检查这些值的正确方法是什么?一些建议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
我在这里寻找正确return语句,这将让我经历的所有行,如果没有出现错误,让我离开的时候,一个错误发生。奖金积分为一些体面的方式来检查错误。
小记...它是对于SQLSTATE类来说,不是完全正确的“任何其他错误”。只有为DB2保留的类(并且定义为错误)一定是错误。例如,信号“K1001”只会在应用程序将其作为错误处理时发生错误。 – user2338816 2014-04-16 13:14:32