AS/400、iSeries、System i 对象 - ODT 条目的数量 - 它们与 RPG 源中的内容相关

AS/400, iSeries, System i Objects - Number of ODT entries - what do they relate to in RPG source

在尝试查找哪个 RPG 源文件已用于创建对象时,我希望使用对象大小、MI 指令数和 ODT(对象定义 table)条目数来确认哪个源文件用于创建对象。似乎有一种观点认为前两个可能会随着编译器版本的不同而有所不同。

所以想知道RPG源码中特定类型的语句与ODT整体的数量之间是否存在对应关系。

我在谷歌上广泛搜索了这个主题,但没有找到任何普通应用程序程序员可以理解的关于 ODT 整体的解释。 This article has a very detailed descrition of ODT but I'm finding it difficult to relate it to an RPG program and the number ODT entries.

This glossary defines ODT as a table built at compile time by the system to keep track of objects declared in the program. The program objects in the table include variables, constants, labels, operand lists and exception descriptions. The table resides in the compiled program object. So does this mean compiling an RPG source at different versions of the operating system would result in the number of ODT entries remaining same for each object created from the same source?

对象大小、MI 指令、ODT 都可能在编译器版本之间发生变化。甚至 PTF 申请。

有两种受支持的方法可以将源绑定到程序对象。

显示程序(DSPPGM)命令:

Type of program  . . . . . . . . . . . . . . . . :   OPM                
Source file  . . . . . . . . . . . . . . . . . . :   QRPGSRC            
  Library  . . . . . . . . . . . . . . . . . . . :     OLSMLSRC         
Source member  . . . . . . . . . . . . . . . . . :   OP510B             
Source file change date/time . . . . . . . . . . :   08/07/05  08:45:11 

注意 ILE RPG,DSPPGM 提供了第三个屏幕,其中列出了所使用的模块,您可以 5=Display Description 并查看:

Module . . . . . . . . . . . . . . . . . . . . :   OP021B            
  Library  . . . . . . . . . . . . . . . . . . :     QTEMP           
Source file  . . . . . . . . . . . . . . . . . :   QRPGLESRC         
  Library  . . . . . . . . . . . . . . . . . . :     OLSMLSRC        
Source member  . . . . . . . . . . . . . . . . :   OP021B            
Module attribute . . . . . . . . . . . . . . . :   RPGLE             
Module creation date/time  . . . . . . . . . . :   04/04/14  10:27:41
Source file change date/time . . . . . . . . . :   03/25/14  14:08:49

商业变更控制包使用 对象控制级别 属性,可以通过 API 设置并通过 API 或 DSPOBJD 详细信息(*服务)

Object . . . . . . . . . . . . . . . :   OP021B      
  Library  . . . . . . . . . . . . . :     OLSMLPRG  
Library ASP device . . . . . . . . . :   *SYSBAS     
Library ASP group  . . . . . . . . . :   *SYSBAS     
Type . . . . . . . . . . . . . . . . :   *PGM        

Object control level . . . . . . . . :   00N0001X    

请注意,对于 ILE programs/service 程序。可以为 *PGM 对象和使用的模块对象设置 对象更改控制 。模块级别 对象更改控制 可通过带有模块源信息的 DSPPGM 获得。

DSPPGM 命令独立于任何更改控制包。它显示 *PGM 对象创建时的属性。