Первичные и полные процедурные файлы в RPG - PullRequest
2 голосов
/ 02 февраля 2010

В чем разница между основными и полными процедурными файлами, как определено в RPG?

Ответы [ 3 ]

3 голосов
/ 06 февраля 2010

Первичный файл использует логический цикл RPG для чтения ваших данных. Полный процедурный файл - это файл, в котором ваша логика контролирует доступ к вашим записям данных. Полные процедурные файлы, безусловно, наиболее распространенное использование. На самом деле, я не думаю, что когда-либо писал программу, которая использует логический цикл со школы. Я редко вижу их в дикой природе.

Логический цикл RPG работает примерно так:

  1. Чтение записи в основном файле .
  2. Выполнение спецификации расчета разрыва уровня
  3. Переместить данные из области файла в поля в вашей программе RPG
  4. Выполнить расчет уровня детализации спецификации
  5. Вернитесь к началу.

После прочтения последней записи устанавливается индикатор LR и выполняются вычисления разрыва уровня, а затем программа завершается.

1 голос
/ 30 марта 2014

Основной файл 'P' чем-то похож на таблицу SQL FROM. С SQL вам не нужно явно указывать, когда читать следующую строку из таблицы, когда вы запускаете оператор UPDATE или DELETE; вам нужно только указать, какие строки обрабатывать с WHERE и, возможно, какие действия предпринять со столбцами. Вы не имеете прямого контроля над временем дискового ввода-вывода в базовой логике; RPG (и SQL) позаботится об этом автоматически.

Но также можно использовать оператор SQL FETCH для более прямого контроля над обработкой отдельных строк. Вы можете думать о полном процедурном файле RPG как о редактируемой таблице SQL FETCH. При полной процедурной обработке вам потребуется кодировать операции (глаголы), такие как READ или WRITE, чтобы переходить от записи к записи.

В этом смысле переход от старой культуры файлов RPG 'P' к более поздним процедурным файлам RPG 'подобен переходу к более примитивной форме взаимодействия с базой данных до появления чего-то более современного, такого как SQL.

Тем не менее, одновременный и последующий прогресс в языке RPG одновременно позволил RPG эволюционировать до сегодняшнего полностью свободного языка, который не имеет необходимой визуальной связи с его ранними корнями, как просто «R'eport« P'rogram » Генератор. Сегодня он эффективно используется многими системными программистами в IBM i, возможно, чаще, чем C. (C все еще имеет пару заметных преимуществ, например, он имеет усовершенствованные оптимизаторы, которые недоступны для других языков, операции на битовом уровне, такие как сдвиги, и т. д .; зависит от того, какие функции необходимы, подходит ли RPG или нет. Ускоренная разработка, безусловно, возможна в RPG.)

Чтобы понять, как используются файлы 'P'rimary (и' S'econdary и связанные с ними), необходимо понять, как работает RPG "Cycle". Если используются полнопроцедурные файлы, вы фактически кодируете свою собственную версию цикла. В ответ вы получаете «цикл», который никоим образом не ограничивает вас; логика именно такая, как вы ее кодируете.

1 голос
/ 05 февраля 2010

Да, это ПОЛНОСТЬЮ отличается в RPG.Та же таблица базы данных, но 100% другой способ логики программы.

Этот выбор является сердцем и душой программирования RPG.Поэтому начните читать руководство программиста RPG .

Если вы новичок в программировании iSeries (и по вашим другим вопросам я знаю, что вы ;-), тогда используйте полные процедурные файлы.Это аналогично другим языкам и системам.

Еще лучше использовать последнюю версию ILE RPG.Это поддерживает все понятия, которые вы знаете из других языков (процедуры, функции, локальные переменные и свободный формат).Старые версии также довольно хороши и делают то, для чего они созданы, но их концепции немного более экзотичны.

...