Как мне перебрать набор записей в RPG (LE) со встроенным SQL?

Как мне перебрать набор записей в RPG (LE) со встроенным SQL?

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
7
0
1 362
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Обычно я создаю курсор и выбираю каждую запись.

   //***********************************************************************
   // Main - Main Processing Routine
   begsr Main;

     exsr BldSqlStmt;

     if OpenSqlCursor() = SQL_SUCCESS;

       dow FetchNextRow() = SQL_SUCCESS;
         exsr ProcessRow;
       enddo;

       if sqlStt = SQL_NO_MORE_ROWS;
         CloseSqlCursor();
       endif;

     endif;

     CloseSqlCursor();

   endsr;    // Main 

Я добавил более подробную информацию к этому ответу в сообщении на моем сайте.

Привет, @Mike Wills, мне было интересно узнать об этом подробнее, но ссылка на ваш сайт не работает.

mike 17.03.2017 10:26

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

Пример:

  EXEC SQL                                                          
  OPEN order_history;                                             

  // Set the length                                                 
  len = %elem(results);                                             

  // Loop through all the results                                   
  dow (SqlState = Sql_Success);                                     
    EXEC SQL                                                        
      FETCH FROM order_history FOR :len ROWS INTO :results;         
    if (SQLER3 <> *zeros);                                                 
      for i = 1 to SQLER3 by 1;        
        // Load the output             
        eval-corr output = results(i); 
        // Do something 
      endfor;                          
    endif;                             
  enddo;                               

HTH, Джеймс Р. Перкинс

Мне это нравится ... Я этого раньше не делал. Придется попробовать на больших наборах записей.

Mike Wills 22.12.2011 08:42

Другие вопросы по теме