如何检查 SQL 光标是否指向 ile rpg 文件的第一条记录?

How to check if the SQL cursor is pointing onto the first record of a file in ile rpg?

我制作了一个包含图片的文件,它的工作方式类似于照片库。 所以,当我按 F12 返回时,我想查看文件中的先前记录。

如果光标到达文件的第一条记录,程序应该关闭。

其实就是在转圈圈,一直在加载之前的记录,一直在循环。

如何告诉程序在文件的第一条记录后停止?

这是我的 SQL:

     EXEC SQL
     DECLARE C1 SCROLL CURSOR FOR SELECT * FROM FILE
     WHERE [variables].....
     ORDER BY ....
     FOR FETCH ONLY;

     EXEC SQL
     OPEN JCBBC1; 

     EXEC SQL
     FETCH NEXT FROM C1 INTO :FILE; 

     DOW SQLCOD = *ZERO;
       *do something....*
       IF F12 is pressed;
         EXEC SQL
         FETCH PRIOR FROM C1 INTO :FILE;
     ENDDO;

ROW_NUMBER() 是一个函数,它生成一个伪列,其中包含从 1 开始的连续数字,并为返回结果的每一行向上计数(因此得名 ROW_NUMBER())。

鉴于您显示的代码,SQLCODE 应该是非零的并且循环应该退出。

实际代码在 FETCHENDDO 之间是否还有另一个 EXEC SQL

如果是这样,那就是重置 SQLCOD,您应该在每个可执行的 SQL 语句之后立即检查 SQLCODESQLSTATE