相同的结构 - DDS 与 DDL - 文件和级别 ID

same structure - DDS vs DDL - File and level id's

在 IBM i (as/400) 中,我希望同一程序 运行 针对 DDL 和 DDS 创建的文件(表)。使用 "CALL qsys2.generate_sql" API 我能够将 DDS 转换为 DLL。 但是一旦编译,我得到不同的文件和成员级别 ID。

这是非常简单的 DDS 和 DLL 代码示例...

A          R TST_RC                                    
A            ORDER_NUM      8S 0       TEXT('ORFER_NO')    
A            ORDER_CUST    20A         TEXT('CUST NO')     

..

CREATE TABLE MYLIB.MYTABLE (                                               
   ORDER_NUM NUMERIC(8, 0) NOT NULL DEFAULT 0 , 
   ORDER_CUST CHAR(20) CCSID 37 NOT NULL DEFAULT '' )      
   RCDFMT TST_RC ;   
;                                                           

文件和成员级别标识符将始终不同。这不是问题,但如果格式相同,格式级别标识符将相同。引起级别检查的是格式级别标识符。因此,在您的示例中,文件和成员级别标识符不同,但这两个文件将具有相同的格式级别标识符,即我系统上的 332FE538F73DB。它甚至应该与您系统上的格式级别相同。因此,这些文件可以互换使用而无需进行级别检查。

使用 DSPFD,这是您需要查找的内容