AS/400(二)
AS400(二)
DDS规则
A列
在提示行 FMT PF 标记的,‘A’列,在一下任何一行记录,都要写 A,标记着这一行为有效记录。
在‘A’后加*,表明此行为注释代码
T列
类型项,此列有两种类型,R 说明定义了一个记录格式,如第 2 行的 T 列代码,紧跟其后边的
是记录名,在描述字段时,此列不入力。如 3-11 行的代码。K 说明定义了一个键值。如 13 行代码
标记。此表内将按照此字段排序。默认为升序。
NAME列
名前项:此列分三种情况,一种为记录格式名。如第 2 行代码,说明的是此表的记录格式名为
SYMASTR。第二种为字段名。如 3-11 行的代码,此处的含义为字段的定义名。字段名不可以重复。
最大长度为 10 位
R项
参照项:参照定义(R 表示只有当 T 列为空,NEME 列非空时有效,表示当前字段是一个参照字
段,BLANK=当前字段非参照字段)
LEN 项:
长度项:字段长度
数据类型T型
常用的有效的数据类型有 A (字符)型,P(压缩十进制)型,S(区位十进制)型和 O(全
角半角混用)型。下表给出数据文件有效的数据类型
字符 | 含 意 |
---|---|
A | 字符型 |
P | 压缩十进制 |
S | 区位十进制 |
B | 二进制 |
F | 浮点型 |
H | 十六进制 |
L | 日期型 |
T | 时间型 |
Z | 时间标记 |
注意:
O 型必须要偶数位。
AS/400 系统做算术操作时,使用压缩十进制比区位十进制更有效。
某些高级语言不支持浮点数据。
如果没有指定数据类型,则小数位项通常用于确定数据类型。
如果小数位为空,数据类型为字符型(A);
如果该位是 0 到 31 的数,则数据类型为压缩十进制(P)。
如果一个高级语言程序使用了压缩十进制或区位十进制字段,字段长度必须限定在此高级语言所允许的长度,这个长度并不是存储区中字段的长度,而是在存储器外部指定的字符或数的位数,例如:一个 5 位数的压缩十进制字段在 DDS 中指定的长度为 5 位,但在存储区中只占用了 3 个字节
FUNCTIONS 项
功能定义,用于定义各种关键字
关键字的使用大大丰富了 DDS 的文件定义。分为
- 文件级,位于记录名之前,主要包括
REF
:指定被参考文件UNIQUE
:键值唯一 (如本实例代码的第 1 行),定义后,数据不能有重复的键值数据,否
则报错。FIFO,FCFO,LIFO
:相同键值记录的排列规则,有 UNIQUE 时,就不能用。 - 记录级,位于记录名和第一个字段名之间,主要有:
FORMAT
:共享其他文件的记录格式。TEXT
:记录格式说明。 - 字段级,关键字位于一个字段名和其下一个字段名或第一个关键字段名之间,包括:
COLHDG
:为数据库文件中字段显示和打印用。REFFLD
:参考一个已定义的字段,允许字段长度和参考的字段不同,可用+N 或-N 来改变字
段长度。VARLEN
: 可变长度字段定义。
关键字段级,关键字位于第一关键字段名和其下一个关键字段名或成员尾之间,主要包括:DESCEND
:按降序排列,可用于字符或数值型键字字段。ABSVAL
:按绝对值顺序排序
键字 ABSVAL | 简要功能说明 绝对值 | 键字 EDTWRD | 简要功能说明 编辑字 |
---|---|---|---|
ALIAS | 替换名 | FCFO | 先修改先出 |
ALL | 全部(仅限逻辑文件) | FIFO | 先进先出 |
ALTSEQ | 交替分配顺序 | FLTPCN | 浮点精度 |
ALWNULL | 允许空值(仅限物理文件) | FORMAT | 格式 |
CCSID | 编码字符集标识(仅限物理文件) | LIFO | 后进先出 |
CHECK | 检查 | NOALTSEQ | 无交替顺序 |
CHKMSGID | 检查信息标识 | RANGE | 范围 |
CMP | 比较 | REF | 引用(仅限物理文件) |
COLHDG | 栏对象题 | REFFLD | 被引用字段(仅限物理文件) |
COMP | 比较 | REFSHIFT | 引用换档 |
CONCAT | 连接(仅限逻辑文件) | RENAME | 重命名(仅限逻辑文件) |
DATFMT | 日期格式 | SIGNED | 符号 |
DATSEP | 日期分隔符 | SST | 子串(仅限逻辑文件) |
DESCEND | 降序 | TEXT | 正文 |
DFT | 缺省值(仅限物理文件) | TIMFMT | 时间格式 |
DIGIT | 数字 | TIMSEP | 时间分隔符 |
DYNSLT | 动态选择(仅限逻辑文件) | TRNTBL | 转换表(仅限逻辑文件) |
EDTCDE | 编辑码 | UNIQUE | 唯一 |
EDTWRD | 编辑字 | UNSIGNED | 无符号 |
FCFO | 先修改先出 | VALUES | 值 |
FIFO | 先进先出 | VARLEN | 变长字段 |
FLTPCN | 浮点精度 | ZONE | 零 |
在定义表过程中,可以在上边的命令行,键入 SAVE,保存当前。也可键入 FILE 命令,保存当
前代码,退出
PF引用
REFFLD : 引用其它文件里面的字段
1 | A R CSCUSTR1 TEXT('Customer Information') |
R后面的字段 需要和 pf文件的R相同
- REFFLD(&FMT/&FLD)
- REFFLD (&FLD &FILE)
- REFFLD (&FLD &LIB/&FILE)
- REFFLD (&FMT/&FLD &LIB/&FILE)
- REFFLD (&FLD *SRC)
Logical File
T 列:
类型项。不入力为在描述字段。有 4 种入力类型。
‘R’ 说明定义了一个记录格式,如第 1 行的 T 列代码,紧跟其后边的是记录名。
‘K’ 说明定义键值,如 2-3 行代码标记,此表内将按照此字段排序(默认为升序)。
‘S’ 说明定义筛选条件,如 4 行。同一个’S’下定义的是并关系。不同个’S’下定义的是或关系。
’O’ 说明对象外数据条件,符合其后边定义条件的数据为不抽出数据。比较越少,工作效率越
高,因此,当有几个选择/省略比较要处理时,应首先指定选择或忽略记录最多的比较。
‘J’ 说明连接逻辑文件,使用连接逻辑文件,应用程序只做一个读操作(对连接逻辑文件的记
录格式)就可得到两个物理文件中所有数据
FUNCTIONS 项:
功能定义,用于定义各种关键字
文件级,位于记录名之前,主要包括:
UNIQUE
:键值唯一 (如本实例代码的第 1 行),定义后,数据(包括物理文件)不能有重复的
键值数据,否则报错。JFILE
:联合物理文件用。PFILE
:指定使用的物理文件记录级,位于记录名和第一个字段名之间,主要有
FORMAT
:共享其他文件的记录格式TEXT
:记录格式说明VALUE
:将字段的内容和表中值相匹配(最多 100 个)的作为选择或省略记录。字段级,关键字位于一个字段名和其下一个字段名或第一个关键字段名之间,包括:
COLHDG
:为数据库文件中字段显示和打印用SST
:根据已定义字段,截取其数据位数定义。关键字段级,关键字位于第一关键字段名和其下一个关键字段名或成员尾之间,主要包括:
DESCEND
:按降序排列,可用于字符或数值型键字字段ABSVAL
:按绝对值顺序排序
更多键字,请参照物理文件 FUNCTIONS 项给出的数据文件有效键字表,也可以在代码处F4,然后光标定位到功能项处,F1 查看帮助说明。
在定义表过程中,可以在上边的命令行,键入 SAVE,保存当前。也可键入 FILE 命令,保存当前代码,退出。
多格式逻辑文件
多格式逻辑文件既可以含有多个记录格式亦可在 PFILE 键字上指定多个文件。连接逻辑文件有
一个记录格式并有 JFILE 键字,可以最多指出 32 个文件。下面给出多格式逻辑文件编码的例子。
连接逻辑文件
连接逻辑文件是把多个物理文件中的数据字段连接到一个记录格式中。对连接逻辑文件必须在记录层指定 JFILE 键字。在一个连接逻辑文件中仅允许有一个记录格式,所以这些项只可以指定一次。下图给出一个逻辑文件编码的例子
筛选字段
Name Type
blank-field, R-record format, K-key field
S-select, O-omit, J-start a join
Name valid & meaningful name(<10digits)
*NONE-key field is not defined
Usage
blank/B-Both input & output
I-input only
N-Not display
VALUES(&VAL1 &VAL2 …)
COMP(XX &VAL) XX-GT, GE, EQ, NE, LE, LT
RANGE(&LOVAL &HIVAL)
ALL
Useful keyword
File level keyword
UNIQUE
Record format level keyword
PFILE(&PFL1 &PFL2 …)-specify the referred physical files
TEXT
Selection level keyword
VALUES(&VAL1 &VAL2 …)
COMP(XX &VAL) XX-GT, GE, EQ, NE, LE, LT
RANGE(&LOVAL &HIVAL)
ALL
Selection level keyword
- records match both condition1 & condition2
1 | S FLD1 CONDITION1 |
- records match at least condition1 or condition2
1 | S FLD1 CONDITION1 |
- records do not match condition1(Omit)
1 | O FLD1 CONDITION1 |
- More condition groups
相关命令
DSPDBR - enquiry related logical files for a physical file
DSPFD – enquiry file information, especially, we can enquiry
related Physical files for a Logical file via this command
RUNQRY查询
RUNQRY *n LF01
f4最后一项 改成yes 可以筛选
WRKSPLF 编译日志查询
shift+f6 到底端
备份数据
strsql
select * from xxx
shift + f1
change session attribute
select output 3
output file
file导出名称 带上@ 后缀表示 备份文件
library 备份所属的库名称
回到sql页面
select * from 库名/
下次设置为1
操作pf和lf
Insert records
UPDDTA
SQL
Via program (RPGLE: WRITE)
Delete records
UPDDTA, CLRPFM
SQL
Via program (RPGLE: DELETE)
Enquiry records
DSPPFM,
RUNQRY,WRKQRY
SQL
Via program (RPGLE: READ)
Change records
UPDDTA
SQL
Via program (RPGLE: UPDATE)
Change file attribute
CHGPF
ADDPFM
RMVM