2017-05-09 43 views
-1

我試圖使用IBM站點建議的方法,使用'謂詞'來測試DB2遊標的狀態,我在下面顯示。但它不會在我的COBOL程序生存編譯: IF( '光標' 未打開)THEN OPEN '光標' ELSE CLOSE '光標' OPEN '光標' END IF; 我認爲它需要EXEC SQL和END EXEC周圍的開和關 ,但並不能解決問題:如果READCUR是開放
EXEC SQL
CLOSE READCUR
OPEN READCUR
END-EXEC
ELSE
EXEC SQL
OPEN READCUR
END-EXEC
END-IF
預編譯說: 「」 必需
無效「打開」關鍵字; COBOL甚至有可能使用這種簡單的方法來確定光標狀態嗎?DB2如何測試遊標的狀態

回答

0

每個「CLOSE READCUR」或「OPEN READCUR」應該有自己的EXEC-SQL,END-EXEC。它不會將它們全部處理到一起

+0

當我添加EXEC-SQL和END-EXEC時,它滿足DB2預編譯器,但COBOL在聲明RREADCUR未定義的「IF」上引發錯誤。但是它被定義,雖然EXEC-SQL之前的EXEC SQL如下所示:EXEC SQL DECLARE READCUR CURSOR for SELECT – jfdutcher

+0

您是否介意將更新代碼 – uSeruSher

+0

@SeruSher 100-OPEN。 IF READCUR是開放 EXEC SQL CLOSE READCUR END-EXEC EXEC SQL OPEN READCUR END-EXEC ELSE EXEC SQL OPEN READCUR END-EXEC END-IF – jfdutcher