自动生成数字AS / 400

时间:2012-09-13 10:06:03

标签: ibm-midrange rpg

我的显示文件“EMPID”中有一个字段。

此字段必须自动生成并受到保护。

如果我要使用数据区,我是如何在我的RPG(不是rpgle)中包含这个。在rpg.Please指南中自动生成数字的其他可能方法是什么。

重新编辑: 使用数据区域,它就像一个魅力:

请注意以下代码:

           C*** ARATWO IS NAME OF DATA AREA OBJECT           
C           *NAMVAR   DEFN           ARATWO  40   
C           *LOCK     IN   ARATWO                 
C                     Z-ADDARATWO    EMP     40   
C                     ADD  1         EMP          
C                     Z-ADDEMP       ARATWO       
C                     OUT  ARATWO                 

感谢所有的帮助。

2 个答案:

答案 0 :(得分:3)

您可以在RPG中使用SQL。 两种可能性: 首先     SEQUENCE SQL     创建序列my_lib / my_sequence ...... ..

请看这里http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=%2Fcom.ibm.db2z10.doc.sqlref%2Fsrc%2Ftpc%2Fdb2z_sql_createsequence.htm

第二个:PF(表格)中的自动增量字段 在DB2 SQL中,您可以创建一个表(Phisical File),其字段定义为 始终作为身份生成 例如:

create table MY_LIB/MY_FILE (                                        
    Id_Auto     int             not null generated always as identity,
    Filed2     int             not null with default,                
    Field3        char(10)        not null with default,                
    PRIMARY KEY (Id_Auto)  
);                         

这样,对该文件的每个INSERT操作都会自动增加字段Id_Auto的值。

insert into MY_LIB/MY_FILE (Field2, Field3) values(10, 'Paolo');
set My_Var = IDENTITY_VAL_LOCAL()

在这两个操作之后,Id_Auto字段会自动递增,您可以使用IDENTITY_VAL_LOCAL()函数在My_Var中获取其值

答案 1 :(得分:1)

RPG User's Guide的第11章提供了在RPG中使用数据区域的示例。