Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ibm midrange 自动生成数字AS/400_Ibm Midrange_Rpg - Fatal编程技术网

Ibm midrange 自动生成数字AS/400

Ibm midrange 自动生成数字AS/400,ibm-midrange,rpg,Ibm Midrange,Rpg,我的显示文件“EMPID”中有一个字段 此字段必须自动生成并受保护 如果我要使用数据区,我应该如何在我的rpg(而不是rpgle)中包含这些数据。在rpg中自动生成数字的其他可能方式是什么。请指导 Reedits: 使用了数据区,它就像一个符咒: 请注意以下代码: C*** ARATWO IS NAME OF DATA AREA OBJECT C *NAMVAR DEFN ARATWO 40 C

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

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

如果我要使用数据区,我应该如何在我的rpg(而不是rpgle)中包含这些数据。在rpg中自动生成数字的其他可能方式是什么。请指导

Reedits: 使用了数据区,它就像一个符咒:

请注意以下代码:

           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                 

感谢所有帮助。

的第11章提供了在RPG中使用数据区域的示例

的第11章有在RPG中使用数据区域的示例

您可以在RPG中使用SQL。 两种可能性: 第一 序列SQL 创建序列my_lib/my_SEQUENCE

看看这里

第二个:PF(表格)中的自动增量字段 在DB2SQL中,您可以创建一个表(物理文件),其字段定义如下 始终作为身份生成 例如:

这样,该文件上的每个插入操作都会自动增加字段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中获取他的值


再见,您可以在RPG中使用SQL。 两种可能性: 第一 序列SQL 创建序列my_lib/my_SEQUENCE

看看这里

第二个:PF(表格)中的自动增量字段 在DB2SQL中,您可以创建一个表(物理文件),其字段定义如下 始终作为身份生成 例如:

这样,该文件上的每个插入操作都会自动增加字段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中获取他的值


ciao

如果您愿意在RPG程序中使用SQL,那么我建议使用DB2序列对象(实际上是一个隐藏的数据区域)来分配EMPID

要设置此设置,您可以使用以下内容:

CREATE SEQUENCE GenEmpID as numeric (6,0) start with 10000;  -- pick your own start point
然后在RPG中,您可以使用如下语句:

VALUES next value for GenEmpID 
  INTO :newkey
newkey中的值可以显示在屏幕上,并且可以在插入时用作记录上的EMPID值


这种方法避免了仅仅为了让DB2生成下一个键值而执行空插入,然后执行单独的更新来实际填充空记录。当您只能执行一个数据库操作时,为什么要执行两个数据库操作?相反,我们只读取和修改一个数据区域,我们这样做的方式是调用一次SQL,而不是使用一个RPG语句到操作系统读取数据区域,增加值,然后使用另一个RPG语句再次到操作系统并更新值。一般来说,在所有其他条件相同的情况下,调用操作系统的次数越少越好。这允许DB2和操作系统为您优化操作,有时低于MI级别。

如果您愿意在RPG程序中使用SQL,那么我建议使用DB2序列对象(实际上是一个隐藏的数据区域)来分配EMPID

要设置此设置,您可以使用以下内容:

CREATE SEQUENCE GenEmpID as numeric (6,0) start with 10000;  -- pick your own start point
然后在RPG中,您可以使用如下语句:

VALUES next value for GenEmpID 
  INTO :newkey
newkey中的值可以显示在屏幕上,并且可以在插入时用作记录上的EMPID值


这种方法避免了仅仅为了让DB2生成下一个键值而执行空插入,然后执行单独的更新来实际填充空记录。当您只能执行一个数据库操作时,为什么要执行两个数据库操作?相反,我们只读取和修改一个数据区域,我们这样做的方式是调用一次SQL,而不是使用一个RPG语句到操作系统读取数据区域,增加值,然后使用另一个RPG语句再次到操作系统并更新值。一般来说,在所有其他条件相同的情况下,调用操作系统的次数越少越好。这允许DB2和操作系统为您优化操作,有时低于MI级别。

那么您是在RPG3中编码的吗?您需要先在屏幕上自动生成字段,还是只在数据库文件中?我假设你使用的是RPG/400?@WarrenT,我想让它在我的屏幕上反映出r在d PF中递增的值。如果能提供这些行的任何提示,我将不胜感激。我有一些严肃的建议。发布你的代码。如果你完全被代码难住了,试试伪代码。如果你想不出来,就张贴你的流程图/框图。这就是我在处理项目时所做的。它帮助我组织我的思想,并专注于我需要学习的东西。如果您打算在IBM中端平台上工作,如果您不了解信息中心中的某些内容,您必须习惯于在信息中心中查找内容,引用具体的项目,我们将试图澄清它。@BuckCalabro问题已通过使用data area.Pl通过reedits解决。那么您是在RPG3中进行编码?您需要先在屏幕上自动生成字段,还是只在数据库文件中生成字段?我假设你使用的是RPG/400?@WarrenT,我想让它在我的屏幕上反映出r在d PF中递增的值。如果能提供这些行的任何提示,我将不胜感激。我有一些严肃的建议。发布你的代码。如果你完全被代码难住了,试试伪代码。如果你想不出来,就张贴你的流程图/框图。这就是我在处理项目时所做的。它帮助我组织我的思想,并专注于我需要学习的东西。如果您打算在IBM中端平台上工作,如果您不了解信息中心中的某些内容,您必须习惯于在信息中心中查找内容,引用具体项目,我们将尝试澄清。@BuckCalabro问题已通过使用数据区解决。Pl通过reedits。感谢帮助。请参阅d reedits了解数据区的用法。感谢帮助。请参阅d reedits了解数据区的用法。感谢帮助。请参阅d reedits了解数据区的用法