偶然发现 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 列:省略已取消是一条评论
关于绊脚石的更多信息。
在 SEU 控制线上。
知识产权?你可以调出一个排序提示行 下面我在排序中有 RF F 行,我在开始位置按 f1。今天,当我按 f4 或输入错误的内容时,它不会自动提示我,它不会找到它,但您可以在提示出现时按 f1 帮助。然后你把它翻译成更现代的东西。
我偶然发现了一些 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 列:省略已取消是一条评论
关于绊脚石的更多信息。
在 SEU 控制线上。
知识产权?你可以调出一个排序提示行 下面我在排序中有 RF F 行,我在开始位置按 f1。今天,当我按 f4 或输入错误的内容时,它不会自动提示我,它不会找到它,但您可以在提示出现时按 f1 帮助。然后你把它翻译成更现代的东西。