77范文网 - 专业文章范例文档资料分享平台

AS400编码规范文档(4)

来源:网络收集 时间:2019-02-17 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

错误!未指定书签。

(2) 数字数组。 例如:

E EAR 128150 E EBH 2000 6 0 EBK 6 0 3. 所有的变量定义后使用前,都必须对变量进行初始化。

3.2.5. I表定义(RPG)

1. 所有的常量和变量都在I表中定义,禁止在程序处理的C表中定义变量。 2. 变量定义的顺序: (1) 字符常量。 (2) 字符变量。 (3) 数字变量。

(4) 组合变量,组合变量中的变量相对组合变量名要缩进两位书写。 例如:

IDS_STU DS 40 I 1 10 STINAM I 11 180STINUM I 19 210STIAGE 3. 所有的变量定义后使用前,都必须对变量进行初始化。

3.2.6. C表定义

1. C表定义顺序:

(1) 定义物理文件或逻辑文件的键值列表。 例如:

C VKL_TRC1 KLIST C KFLD VKS_BRH C KFLD VKS_MCH C KFLD VKS_SEQ (2) 定义参数列表。 例如:

C VPL_CKPN PLIST C PARM VPC_CRD C PARM VPC_PIN C PARM VPC_RTN

第 16 页 共 41 页

错误!未指定书签。

(3) 定义入口参数。 例如:

C *ENTRY PLIST C PARM VPC_CRD C PARM VPC_PIN (4) 程序处理。 2. 主程序结构:

过程名必须以SR#开头,在调用之前,对该过程的主要功能进行说明: * 参数初始化 C EXSR SR#INT * 主过程 C EXSR SR#MAIN * 程序结束 C EXSR SR#ENDP 3. 子过程:

在子过程BEGSR之前必须包含以下的说明:

***************************************************************** * 子过程名:SR#INT

* 功能描述:参数初始化

***************************************************************** C SR#INT BEGSR C*

C ENDSR

3.2.7. O表定义

禁止使用O表对报表进行定义,报表的定义统一采取外部文件表述方法,使用DDS来生成PRTF。

3.2.8. 循环嵌套

避免大量使用循环嵌套和条件嵌套,禁止使用GOTO语句。出现多个嵌套的时候,在第3列处标明各层嵌套的层次。 例如:

.....*.. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+... * 1B C *IN90 DOW '0'

C* 2B C *IN91 IF '1' C - ?? C ?? 3B C *IN92 IF '1'

第 17 页 共 41 页

错误!未指定书签。

C ?? 3- C ELSE 3E C ENDIF 2E C ENDIF 1E C ENDDO

3.2.9. 数据区(Data Area)操作

1. 如果只是读取数据区的内容,则必须以不锁方式读取数据区。 2. 如果修改数据区的内容,则必须以锁方式读取数据区,在修改后解锁。 3. 以锁方式读取数据区,如果不符合修改条件,则用UNLOCK语句进行解锁。 例如:

D VDS_DTAR DS 100 D DA_FRDQ 1 10 D DA_TODQ 11 20 C*只是读取数据区内容

C *DTAARA DEFINE ATWDTQDTA VDS_DTAR

C IN *DTAARA C*修改数据区内容

C *DTAARA DEFINE ATWDTQDTA VDS_DTAR

C *LOCK IN *DTAARA 80 1B C *IN80 IF '0' C ??

C*修改条件判断

2B C Vc_CGDA IF '1' C*符合修改条件 C*赋值操作

C*修改数据区后解锁;如果修改数据区后还须加锁,则还需在因子1栏位填写“*LOCK”。 C OUT *DTAARA 2- C ELSE C*不符合修改条件

C UNLOCK *DTAARA 2E C ENDIF 1E C ENDIF

3.2.10. 数据文件操作

3.2.10.1.

注意事项

1. 禁止将*LOVAL和*HIVAL写到循环体。

2. 在程序中读取记录时,必须填写指示器(如CHAIN语句,须填写Hi指示器;READ类语句,须填

写Eq指示器),且根据指示器的值进行处理。

3. 对一个文件进行循环读取记录并进行普通处理,当读到A记录,需额外处理记录B时,则先将A

第 18 页 共 41 页

错误!未指定书签。

记录的键值(必须是唯一键值)保留到临时变量,若没有唯一键值可保留相对记录号RRN,通过另一个文件(必须有唯一键值)定位B记录进行处理,待处理B记录后,再通过保留A记录的键值定位回A记录。

4. 在修改记录和新增记录时,尽量填写指示器Lo,尤其对唯一键值文件新增记录时,必须填写。 5. 在以锁方式读取记录后,如果没有进行修改操作(UPDATE)或删除操作(DELETE),则必须进行

解锁操作(UNLOCK)。

6. 定义文件如果定义了关键字USROPN,那么通过OPEN语句打开文件时,必须填写指示器Lo,并通

过指示器Lo判断是否打开成功,在处理完毕后,必须使用CLOSE语句关闭文件。 7. 如果同时对多个文件进行更新操作时,才采用事务处理,否则不采用。

8. 声明的文件如果定义了 COMMIT 关键字,那么对其进行修改后,修改的记录在执行事务操作之前,

会一直保持锁定状态。锁定的记录越多,其它程序的执行效率将会越低,同时,当前进程在执行回滚操作时的时间就越长,应该在处理完一组完整的修改后就提交一次事务处理,避免处理完所有的修改后才提交事务处理,造成系统资源的浪费。

3.2.10.2.

符号:

操作处理

N:表示不锁记录,只能读取记录。 空:表示锁记录,可读取记录并修改记录。 语句 CHAIN{N} 说明 游标指到当前记录 指示器(Hi、Lo、Eq) Hi:表示是否查询到相应记录,查询不成功时,打开Hi指示器,必须填写。 Lo:查询时,记录是否被锁。记录被锁时,打开Lo指示器。 SETLL 只能读取记录 游标指向相应记录之前 Eq:当文件中有相应记录时,关闭EQ指示器。 一般与*LOVAL、READ或READE使用。 *LOVAL SETLL 表示游标指向所有记录之前。 SETGT 游标指向相应记录之后 第 19 页 共 41 页

一般与*HIVAL、READP或READPE使用。 备注 错误!未指定书签。 *HIVAL SETGT 表示游标指向所有记录之后。 READ{N} 游标指向下一条记录 Lo:读记录时,记录是否被锁。记录被锁时,打开Lo指示器。 Eq:表示是否读到记录,读成功时,关闭Eq指示器,必须填写。 READE{N} 游标指向下一条记录且键值相等 Lo:读记录时,记录是否被锁。记录被锁时,打开Lo指示器。 Eq:表示是否读记录,读成功且键值相等时,关闭Eq指示器,必须填写。 READP{N} 游标指向上一条记录 Lo:读记录时,记录是否被锁。记录被锁时,打开Lo指示器。 Eq:表示是否读到记录,读成功时,关闭Eq指示器,必须填写。 READPE{N} 游标指向上一条记录且键值相等 Lo:读记录时,记录是否被锁。记录被锁时,打开Lo指示器。 Eq:表示是否读到记录,读成功且键值相等时,关闭Eq指示器,必须填写。 READC 游标指向下一条修改记录 Lo:读记录时,记录是否被锁。记录被锁时,打开Lo指示器。 Eq:表示是否读到记录,读成功时,关闭Eq指示器,必须填写。 OPEN 打开文件 Lo:表示是否成功打开文件,不成功时,打开Lo指示器。 CLOSE COMMIT ROLBK

第 20 页 共 41 页

关闭文件 确认操作 回滚操作 只有执行COMMIT语句或ROLBK语句后才能正式解锁。

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库AS400编码规范文档(4)在线全文阅读。

AS400编码规范文档(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/478078.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: