在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