Как проверить, что курсор SQL указывает на первую запись файла в ile rpg? - PullRequest
0 голосов
/ 16 октября 2018

Я сделал файл с картинками, и он работает как фотогалерея.Итак, когда я возвращаюсь с 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 голосов
/ 16 октября 2018

Учитывая код, который вы показали, SQLCODE должен быть ненулевым, и цикл должен завершиться.

Имеет ли реальный код другой EXEC SQL между FETCH и ENDDO.

Если это так, это сбрасывает SQLCOD, вы должны проверять SQLCODE или SQLSTATE сразу после каждого исполняемого оператора SQL.

0 голосов
/ 16 октября 2018

ROW_NUMBER () - это функция, которая генерирует псевдо-столбец, содержащий последовательные числа, начиная с 1 и считая каждую строку возвращаемых результатов (отсюда и имя ROW_NUMBER ()).

...