相同的结构 - 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,这是您需要查找的内容
在 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,这是您需要查找的内容