我是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
答案 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)
答案 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)和三个用于读取记录。问题中缺少有关数据需要完成的细节。