如何创建RPG IV以从DB2插入和检索数据

时间:2013-03-18 06:24:41

标签: ibm-midrange rpgle

我是AS / 400的新手,熟悉数据描述规范(DDS)声明。 我有两个使用数据描述规范创建的表。

我需要编写两个RPGLE程序来插入和检索这些表。

EMPPERS FILE

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

DEPTMNT FILE

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

4 个答案:

答案 0 :(得分:4)

如果没有真正为你工作,这里有一些东西让你开始。不过,我同意其他答案。你真的需要进入程序员指南和参考手册。但是,我也明白,如果你是从没有任何RPG IV知识的情况下来的,那可能是令人生畏的。

以下示例在RPG中使用直接文件访问,仅适用于一个文件。使用这种技术时,两个文件的处理方式都相同。

看第一行,这是一个F规格。它用于直接文件访问以声明您的文件并声明您将如何使用它。在示例中,我将其声明为外部描述,可更新,完整程序,键控和磁盘。其他一切都是自由形式的。

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

答案 1 :(得分:1)

RPG支持对数据库进行直接(文件)和SQL操作。

由于您引用DDS,我假设您对基于文件的访问更感兴趣。

有许多File Operations可用于访问数据库。

有关详细信息,请参阅在线文档。

答案 2 :(得分:1)

JamesA和Buck已经给出了很好的答案,因为它本身就是RPG语言,因此使用我们称之为原生I / O的最简单的路径。

如果我不指出这些天通常被认为是推荐的解决方案,我会感到疏忽。

通常,我们应该使用嵌入式SQL 作为RPG中的数据文件I / O.无论您的文件是使用DDS还是SQL(DDL)创建的,都是如此。 SQL

您可以查看IBM i Information Center

答案 3 :(得分:0)

这是一个奇怪的问题。它需要三个RPG源代码行来创建一个完整的程序来将记录写入文件(F-spec,WRITE操作码,设置LR on)和三个用于读取记录。问题中缺少有关数据需要完成的细节。