Как создать RPG IV для вставки и извлечения данных из DB2

Я новичок в AS/400 и знаком с операторами спецификации описания данных (DDS). У меня есть две таблицы, созданные с использованием спецификации описания данных.

Мне нужно написать две программы RPGLE для вставки и извлечения из этих таблиц.

ФАЙЛ EMPPERS

                                         REF(HRFREF)      
         R EMPR                                       
           EMPID     R               REFFLD(IDNO)     
           NAME      R                                
           DOB       R                                
           STS       R                                
         K EMPID                                      

ФАЙЛ ОТДЕЛА

                                         REF(HRFREF)  
         R DEPTR                                  
           DEPTID    R               REFFLD(DEPID)
           DEPNM     R                            
           STS       R                            
         K DEPTID                                 

person yrk    schedule 18.03.2013    source источник


Ответы (4)


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

В приведенном ниже примере используется прямой доступ к файлам в RPG и только для одного файла. Оба файла можно обрабатывать одинаково при использовании этой техники.

Глядя на первую строку, это F-spec. Он используется для прямого доступа к файлу, чтобы объявить ваш файл и объявить, как вы собираетесь его использовать. В примере я объявил его внешне описанным, обновляемым, полностью процедурным, с ключом и на диске. Все остальное в свободной форме.

Femppers   uf a e           k disk

 /free
  //Read from EMPPERS file with a given employee id.  Change
  //the status and update it.
  EMPID = 12345;  //assuming EMPID is numeric 5,0.
  Chain (EMPID) Emppers;
  If %Found();
    STS = 'A';    //Assuming STS is a 1-byte alpha
    Update Empr;  //Update the record format, not the file.
  EndIf;

  //Add a new record to EMPPERS:
  EMPID = 45678;
  NAME = 'John Doe';
  DOB = Date('1980-01-01':*ISO);
  STS = 'A';
  Write Empr;   //Write to the record format, not the file.

  *INLR = *On;  //Tell the program that it's okay to end.
                //Note: *INLR doesn't actually end the program,
                //      it just says that it's OKAY to end.
 /end-free
person Tracy Probst    schedule 19.03.2013

RPG поддерживает прямые (файловые) и SQL-операции с базой данных.

Поскольку вы ссылаетесь на DDS, я предполагаю, что вас больше интересует доступ на основе файлов.

Существует ряд файловых операций. которые можно использовать для доступа к базе данных.

Дополнительную информацию см. в онлайн-документации.

person James Allman    schedule 18.03.2013
comment
Спасибо, JamesA, как я уже упоминал, я не знаком с ролевыми играми, можете ли вы привести один пример? - person yrk; 18.03.2013
comment
Невозможно научить программированию с помощью вопросов и ответов на веб-форуме. Это не значит, что мы не хотим помочь! Ничего о вас не зная (вы написали какие-нибудь программы на каком-либо языке? Это домашнее задание или задание на работу?), все, что мы можем сделать, это указать, где находится справочный материал, и надеяться, что вы вернетесь с более конкретным вопросом после того, как сообщите нам, что ты пытался. Посмотрите Руководство программиста RPG в ответе Джеймса. Существует раздел «Доступ к файлам базы данных». Прочтите это, напишите код и попробуйте его скомпилировать. - person Buck Calabro; 18.03.2013

JamesA и Buck дали хорошие ответы на то, что может показаться самым простым путем, используя то, что мы бы назвали собственным вводом-выводом, поскольку он является родным для языка RPG.

Я бы чувствовал себя упущенным, если бы не указал вам на то, что обычно считается рекомендуемым решением в наши дни.

В общем, мы должны использовать встроенный SQL для нашего ввода-вывода файла данных в RPG. Это верно независимо от того, были ли ваши файлы созданы с помощью DDS или SQL (DDL). SQL

Вы можете просмотреть информацию IBM i Центр:

person WarrenT    schedule 18.03.2013

Это странный вопрос. Для создания полной программы для записи записи в файл требуется три строки исходного кода RPG (F-spec, WRITE op-code, включение LR) и три строки для чтения записи. Детали того, что нужно сделать с данными, отсутствуют в вопросе.

person user2338816    schedule 06.04.2014