我制作了一个带有图片的文件,其工作方式类似于照相馆。 因此,当我返回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;
答案 0 :(得分:1)
ROW_NUMBER()是一个函数,该函数生成一个伪列,该伪列包含从1开始并为返回结果的每一行计数的连续数字(因此为ROW_NUMBER()的名称)。
答案 1 :(得分:0)
鉴于您显示的代码,SQLCODE应该为非零值,并且循环应该退出。
实际代码在EXEC SQL
和FETCH
之间是否还有另一个ENDDO
。
如果是这样,那将重置SQLCOD
,您应该在每个可执行SQL语句之后立即检查SQLCODE
或SQLSTATE
。