AS400(二)

DDS规则

image-20201008101934002

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 时间标记

注意:

  1. O 型必须要偶数位。

  2. AS/400 系统做算术操作时,使用压缩十进制比区位十进制更有效。

  3. 某些高级语言不支持浮点数据。

如果没有指定数据类型,则小数位项通常用于确定数据类型。

如果小数位为空,数据类型为字符型(A);

如果该位是 0 到 31 的数,则数据类型为压缩十进制(P)。

如果一个高级语言程序使用了压缩十进制或区位十进制字段,字段长度必须限定在此高级语言所允许的长度,这个长度并不是存储区中字段的长度,而是在存储器外部指定的字符或数的位数,例如:一个 5 位数的压缩十进制字段在 DDS 中指定的长度为 5 位,但在存储区中只占用了 3 个字节

FUNCTIONS 项

功能定义,用于定义各种关键字
关键字的使用大大丰富了 DDS 的文件定义。分为

  1. 文件级,位于记录名之前,主要包括
    REF:指定被参考文件
    UNIQUE:键值唯一 (如本实例代码的第 1 行),定义后,数据不能有重复的键值数据,否
    则报错。
    FIFO,FCFO,LIFO:相同键值记录的排列规则,有 UNIQUE 时,就不能用。
  2. 记录级,位于记录名和第一个字段名之间,主要有:
    FORMAT:共享其他文件的记录格式。
    TEXT:记录格式说明。
  3. 字段级,关键字位于一个字段名和其下一个字段名或第一个关键字段名之间,包括:
    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
2
3
4
A          R CSCUSTR1                  TEXT('Customer Information')
A C1CTNM 2A TEXT('Country Code')
A COLHDG('CTY' 'CODE')
A C1CSBK R COLHDG('CSBK')

R后面的字段 需要和 pf文件的R相同

  1. REFFLD(&FMT/&FLD)
  2. REFFLD (&FLD &FILE)
  3. REFFLD (&FLD &LIB/&FILE)
  4. REFFLD (&FMT/&FLD &LIB/&FILE)
  5. REFFLD (&FLD *SRC)

Logical File

image-20201008103254608

T 列:

类型项。不入力为在描述字段。有 4 种入力类型。
‘R’ 说明定义了一个记录格式,如第 1 行的 T 列代码,紧跟其后边的是记录名。
‘K’ 说明定义键值,如 2-3 行代码标记,此表内将按照此字段排序(默认为升序)。
‘S’ 说明定义筛选条件,如 4 行。同一个’S’下定义的是并关系。不同个’S’下定义的是或关系。
’O’ 说明对象外数据条件,符合其后边定义条件的数据为不抽出数据。比较越少,工作效率越
高,因此,当有几个选择/省略比较要处理时,应首先指定选择或忽略记录最多的比较。
‘J’ 说明连接逻辑文件,使用连接逻辑文件,应用程序只做一个读操作(对连接逻辑文件的记
录格式)就可得到两个物理文件中所有数据

FUNCTIONS 项:

功能定义,用于定义各种关键字

  1. 文件级,位于记录名之前,主要包括:
    UNIQUE:键值唯一 (如本实例代码的第 1 行),定义后,数据(包括物理文件)不能有重复的
    键值数据,否则报错。
    JFILE:联合物理文件用。
    PFILE:指定使用的物理文件

  2. 记录级,位于记录名和第一个字段名之间,主要有
    FORMAT:共享其他文件的记录格式
    TEXT:记录格式说明
    VALUE:将字段的内容和表中值相匹配(最多 100 个)的作为选择或省略记录。

  3. 字段级,关键字位于一个字段名和其下一个字段名或第一个关键字段名之间,包括:
    COLHDG:为数据库文件中字段显示和打印用
    SST :根据已定义字段,截取其数据位数定义。

  4. 关键字段级,关键字位于第一关键字段名和其下一个关键字段名或成员尾之间,主要包括:
    DESCEND:按降序排列,可用于字符或数值型键字字段
    ABSVAL:按绝对值顺序排序
    更多键字,请参照物理文件 FUNCTIONS 项给出的数据文件有效键字表,也可以在代码处F4,然后光标定位到功能项处,F1 查看帮助说明。
    在定义表过程中,可以在上边的命令行,键入 SAVE,保存当前。也可键入 FILE 命令,保存当前代码,退出。

多格式逻辑文件

多格式逻辑文件既可以含有多个记录格式亦可在 PFILE 键字上指定多个文件。连接逻辑文件有
一个记录格式并有 JFILE 键字,可以最多指出 32 个文件。下面给出多格式逻辑文件编码的例子。

image-20201008104002143

连接逻辑文件

连接逻辑文件是把多个物理文件中的数据字段连接到一个记录格式中。对连接逻辑文件必须在记录层指定 JFILE 键字。在一个连接逻辑文件中仅允许有一个记录格式,所以这些项只可以指定一次。下图给出一个逻辑文件编码的例子

image-20201008104102256

筛选字段

  1. Name Type

    blank-field, R-record format, K-key field

    S-select, O-omit, J-start a join

  2. Name valid & meaningful name(<10digits)

    *NONE-key field is not defined

  3. 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

  1. records match both condition1 & condition2
1
2
3
S  FLD1   CONDITION1

FLD2 CONDITION2
  1. records match at least condition1 or condition2
1
2
3
S  FLD1   CONDITION1

S FLD2 CONDITION2
  1. records do not match condition1(Omit)
1
O FLD1   CONDITION1
  1. 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 可以筛选

image-20200923142254106

WRKSPLF 编译日志查询

shift+f6 到底端

image-20200923170857559

备份数据

  1. strsql

  2. select * from xxx

  3. shift + f1

  4. change session attribute

  5. select output 3

  6. output file

    file导出名称 带上@ 后缀表示 备份文件

    library 备份所属的库名称

    回到sql页面

  7. 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