Доступ SQL к файлам базы данных RPG OPM

Мне нужно оценить устаревшее программное обеспечение, используемое компанией, которую мой работодатель намеревается купить. Программное обеспечение изначально было запрограммировано в RPG II (или III?) Для IBM System / 38 и с тех пор постоянно расширялось. Теперь он находится на новом сервере i Series с i5 / OS и средами выполнения для RPG II, III, IV / ILE. Меня не особо беспокоит программное обеспечение, а хранение данных. Я знаю, что i5 / OS включает реляционную базу данных DB / 2, но DB / 2 дошла до среднего уровня только в 1990-х годах. Программное обеспечение предшествует этому примерно на десять лет. В System / 38 также была интегрированная база данных, но я не смог найти ни деталей, ни даже названия.

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

Итак, я хочу знать:

  • Могу ли я легко получить доступ к файлам традиционной системной базы данных устаревшей RPG II OPM через интегрированный DB / 2?
  • Отображаются ли эти файлы базы данных автоматически в DB / 2?
  • Нужно ли мне их каким-то образом "импортировать"?
  • Нужно ли мне каким-либо образом изменять программное обеспечение, которое их создает / обращается к ним, чтобы иметь возможность использовать их изнутри DB / 2?
  • Или я совершенно ошибаюсь и система работает совершенно по-другому?

Я не хочу заменять существующий метод хранения данных, я просто ищу способы на основе SQL для периодического доступа к существующим данным в режиме только для чтения / копирования в отчет-базу-куб.

Я просмотрел базу знаний IBM и некоторые справочники, но ни «Модернизация приложений IBM i», ни «Программирование баз данных IBM i» не помогли в решении этого вопроса. Вся найденная мною литература предполагает подробные знания устаревших систем и объясняет язык высокого уровня и концепции SQL, но ни одна из них не объясняет устаревшую систему с точки зрения современного языка высокого уровня и представления SQL. Так что указатели на «RPG и i5 / OS для поколения Интернета» также будут очень признательны.


person leisurelarry    schedule 10.06.2015    source источник
comment
Я видел, как RPGII использует таблицу в QS36F с именем вроде AB.CDE. Для SQL просто добавьте, например, select * from qs36f."AB.CDE". Мы создаем нормальный индекс / представления в обычной библиотеке, чтобы легко получить доступ / обновить этот qs36f.AB.CDE с использованием более новой RPG IV, SQL или других языков.   -  person lamLam    schedule 11.06.2015


Ответы (1)


В IBM i (ранее AS / 400, System i и iSeries) базы данных являются базами данных. Вы можете получить к ним доступ практически на любом языке, независимо от того, как они были изначально определены.

База данных под названием «DB2 for i» - это та же базовая база данных, что и в первом выпуске AS / 400 (она стала быстрее, эффективнее, содержит больше функций и т. Д., Но основные функции остались прежними).

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

Самым большим ценным предложением IBM i является обратная совместимость ... вы можете обновиться с одного выпуска до другого, и 99,9% кода вашего приложения будет работать без изменений (этот 0,1% применяется только в том случае, если вы пытаетесь делать что-то, нарушающее правила, немногие приложения делают что).

person David G    schedule 10.06.2015
comment
Хм, одна небольшая оговорка ... вы упомянули RPG II ... в которой часто используются плоские файлы с описанными программами макетами файлов. Их будет нелегко использовать в SQL. Программы RPG III обычно используют файлы с внешним описанием (DDS или SQL). Если рассматриваемое приложение использует файлы, определенные DDS или DDL, то проблем нет. - person David G; 10.06.2015
comment
Спасибо, это очень помогло (и успокоило ;-). Я не знаю, есть ли какие-нибудь программы RPG II, наверняка там установлена ​​среда исполнения RPG II. Есть ли какой-нибудь быстрый и надежный способ идентифицировать RPG II? Думаю, я в суп, если увижу программный цикл? Что еще мне нужно остерегаться? Является ли перенос программы RPG II из плоского файла в базу данных очень сложным или это можно сделать за неделю или около того? Программное обеспечение является разновидностью специализированного программного обеспечения для бухгалтерского учета, и любые старые компоненты должны быть достаточно простыми для клиента или записывать основные данные. - person leisurelarry; 11.06.2015
comment
Все программы RPG, независимо от версии, могут использовать цикл (хотя в наши дни это делают лишь немногие). Преобразование программы из плоского файла во внешне описываемое несложно. Самая сложная часть - это преобразование данных. Вы можете определить, является ли файл плоским или внешне описанным, выполнив для него DSPFFD ... если вы видите много полей, он описан внешне, если вы видите только одно поле, оно плоское. - person David G; 11.06.2015
comment
Также плоские файлы FWIW можно переопределить (иначе описанные извне) с помощью DDS или SQL и по-прежнему получать доступ с помощью RPG II ... большой вопрос для вашего поставщика будет заключаться в том, сделали ли они это или нет. Даже если бы они этого не сделали, вы могли бы создавать поверх них логические файлы, чтобы легче было предоставлять данные SQL, но это далеко не идеально. Спросите, есть ли у них файлы с несколькими участниками. Это большая проблема для доступа с использованием SQL ... если они это сделают, это сведет вас с ума. - person Brandon Peterson; 15.07.2015