RPG で組み込み SQL を使用する場合、多くの場合dow
、結果のすべての行を処理するためにカーソルとループが発生します。ループ内の条件は、SQLRPGLE プログラムでグローバルに使用可能ないくつかの変数SQLCOD
および/またはに何らかの形で依存していますか?SQLSTT
しかし、これらの値を確認する正しい方法は何ですか? SQLCOD = 0
他の人を提案する人もいnot (SQLCOD = +100 or SQLSTT = '02000')
ます。1 つはすべての警告で失敗し、もう 1 つは一部のエラーで失敗しないため、満足できません。
私がいくつかのコードで何をするかを説明するには:
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 ステートメントを探しています。これにより、エラーが発生しない場合はすべての行を通過し、エラーが発生した場合は離れることができます。エラーをチェックするための適切な方法に対するボーナスポイント。