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

时间:2018-10-16 08:33:49

标签: sql db2 rpgle

我制作了一个带有图片的文件,其工作方式类似于照相馆。 因此,当我返回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;

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

实际代码在EXEC SQLFETCH之间是否还有另一个ENDDO

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