77家的会客厅

IBM AS/400小型机开发相关

RPGLE中DS结构和数组结合的几种方式

最近的项目中不段的用到配列(数组),二维配列以及DS等。将几种定义方式及区别列举如下:

变量定义以T@或W@开头,分别带表是数 组还是普通WK变量。

T@ARR        DS         DIM(10) QUALIFIED
 T@SUBARR        12A    DIM(20)

上 面这个就是一个二维数组,相当于DB中的横向20个字段,记录有10条。

必须加“QUALIFIED"关键字。

T@ARR       DS         DIM(10)
 W@SUB1           5A
 W@SUB2           5S 0

上 面这个是数组呢,相当于每条记录是由W@SUB1和W@SUB2组成的,也就是T@ARR的每条记录是一个10A的变量。

            DS
T@ARR             20A   DIM(10)
 T@ARR1            5A   OVERLAY(T@ARR:1)  */OR OVERLAY(T@ARR:*NEXT)
 T@ARR2            5A   OVERLAY(T@ARR:6)
 T@ARR3           10S 0 OVERLAY(T@ARR:11)

上 面的也是T@ARR的每条记录由三个变量组成,但上面这种定义方法,可以将三个变量也形成一个DIM(10)的数组,这样对于DB中有规律的重复字段来说 就很有用。

W@STR        DS      10A
 T@ARR                1A      DIM(10)

上 面这个就是将变量W@STR分成一个单个元素长度为1A的数组。

AS400中的系统信息

在AS400里运行命令WRKSYSSTS会得到如下的结果:

% CPU used . . . . . . . :       16.9    Auxiliary storage:                  
% DB capability  . . . . :       18.0      System ASP . . . . . . :    316.4 G
Elapsed time . . . . . . :   00:00:01      % system ASP used  . . :    29.0248
Jobs in system . . . . . :       1121      Total  . . . . . . . . :    316.4 G
% perm addresses . . . . :       .010      Current unprotect used :     5836 M
% temp addresses . . . . :       .750      Maximum unprotect  . . :   127647 M

右 列最后两项在日文系统中显示为:

現在の非保護域使用量 . . : 5836 M
最大非保護域 . . . . . . : 127647 M
AS400开发便笺

1 ADDLIBLE 追加LIB到现有的编译LIB中
2 ALCOBJ 为 OBJ分配内存
3 CALL 用来调用其他程序
4 CHGDTAARA DATA 域变更
5 CHGJOB 改变JOB的属性
6 CHGLIBL 变更编译时的库
7 CHGPFM 修改程序的相关信息
8 CHKOBJ 查找OBJ
9 CLRPFM 清除物理文件数据
10 CLRSAVF 删除SAVE文件下的内容
11 CPYFRMQRYF 复制QUERY文件到目的库
12 CPYSPLF 把 CALL出来的帐票文件导成数据文件
13 CRTAPW 挂线程序做成
14 CRTBNDCL 编译CLLE文件
15 CRTBNDRPG 编译RPGLE程序
16 CRTCLPGM 编译CL文件
17 CRTDSPF 编译画面文件...

AS400 RPGLE中 LF文件定义及复合LF文件使用

COBOL经典面试题库(65~126)
Weather:小雨,天气很阴

Q65) What is the significance of ‘above the line’ and ‘below the line’?
A65) Before IBM introduced MVS/XA architecture in the 1980’s a program’s virtual storage was limited to 16 megs. Programs compiled with a 24 bit mode can only address 16 Mb of space, as though they were kept under an imaginary storage line. With COBOL II a program compiled with a 31 bit mode can be ‘above the 16 Mb line. (This ‘below the line’, ‘above the line’ imagery confuses most mainframe programmers, who tend to be a literal minded group.)
Q: ’above the line’和‘below the line’有什么意义
A: 在IBM推出MVS/XA体系之前,80年代的程序虚拟存储都限制在16 megs.程序以24位的方式仅在一个16Mb的地址空间中被编译,就好象那些程序被保存在虚存中一样。使用COBOL II编码之后,以31位方式的编码能超过16位的界线。(也就是说COBOL II之前是“在此界线之下”的,COBOL II之后“在这接线之上”,这通常容易使一些主机程序员搞混)...