偶然发现 FMTDTA (IBM i)

stumbled on FMTDTA (IBM i)

我偶然发现了一些 FMTDTA,它似乎是一种 query/sort 语言,在旧的 RPG 系统中早于 SQL。我试图阐明它的用法。

示例:

物理文件布局:

ORNO         S      9 0     1     9 Order No       
ORCSTNO      A     10      10    19 Custno        
ORDAT        S      6 0    20    25 Order Date     
ORAMT        S     12 2    26    37 Order Amt  

PF 源成员 ORDSRT 中的排序条件:

HSORTR    25A                      Keyfields are 25 characters long - Sort Ascending
FNC  20  25                        KEY 1: ORDER DATE              
FNC   1   9                        KEY 2: ORDERNO                 
FNC  10  19                        KEY 3:  CUST NO                 
FDC   1  37                        Take whole record (1-37)       

排序命令

FMTDTA INFILE((MYLIB/ORDHED)) OUTFILE(QTEMP/ORDHED)          
SRCFILE(MYLIB/MYSRC) SRCMBR(ORDSRT) OPTION(*NOPRT)       

结果:

成功排序 DATE/ORD#/CUST#

但是,FMTSRC 中还有其他几行我不确定它们的用途。示例:

FOU 
FOC
FNU
O C   1   1EQCD                    CANCELLED  
I C   8   8EQCB                    CREDIT NOTE
O C   1   1EQCX                    OMIT CANCELLED

这六行的含义如下:

FOU

第 6 列:F 表示它是一个 Field 语句

第 7 列:O 表示该字段是相反的控制字段

第 8 列:U 表示该字段包含分区格式的带符号十进制数据

FOC

第 6 列:F 表示它是一个 Field 语句

第 7 列:O 表示该字段是相反的控制字段

Col 8: C表示字段包含字符数据

FNU

第 6 列:F 表示它是一个 Field 语句

Col 7: N表示该字段为普通对照字段

第 8 列:U 表示该字段包含分区格式的带符号十进制数据

O C   1   1EQCD                    CANCELLED

第 6 列:O 表示省略

第 8 列:C 表示因子 1 和因子 2 必须包含字符数据

第 9 列:1 是因素 1 的起始位置

第 13 列:1 是因子 1 的结束位置

第 17 列:EQ 表示因子 1 必须等于因子 2

第 19 列:C 表示因子 2 是常数

第 20 列:D 是与因子 1 进行比较的常量或关键字

第 40 列:已取消是评论

I C   8   8EQCB                    CREDIT NOTE

第 6 列:我的意思是包含

第 8 列:C 表示因子 1 和因子 2 必须包含字符数据

第 9 列:8 是因子 1 的起始位置

第 13 列:8 是因素 1 的结束位置

第 17 列:EQ 表示因子 1 必须等于因子 2

第 19 列:C 表示因子 2 是常数

第 20 列:B 是与因子 1 进行比较的常量或关键字

第 40 列:贷方通知单是一条评论

O C   1   1EQCX                    OMIT CANCELLED

第 6 列:O 表示省略

第 8 列:C 表示因子 1 和因子 2 必须包含字符数据

第 9 列:1 是因子 1 的起始位置

第 13 列:1 是因子 1 的结束位置

第 17 列:EQ 表示因子 1 必须等于因子 2

第 19 列:C 表示因子 2 是常数

第 20 列:X 是与因子 1 进行比较的常量或关键字

第 40 列:省略已取消是一条评论

Reference

关于绊脚石的更多信息。 在 SEU 控制线上。 知识产权?你可以调出一个排序提示行 下面我在排序中有 RF F 行,我在开始位置按 f1。今天,当我按 f4 或输入错误的内容时,它不会自动提示我,它不会找到它,但您可以在提示出现时按 f1 帮助。然后你把它翻译成更现代的东西。