`
夜不懂白的黑
  • 浏览: 19187 次
  • 性别: Icon_minigender_1
  • 来自: 孝感
社区版块
存档分类
最新评论

RPGLE浅尝辄止

阅读更多

(RPGLE是RPG的升级版,是RPG IV,现在一般写RPGLE代码,RPG代码和RPGLE代码还是有点区别的,例如我发现的RPG中没有RETURN,因为Option长度容纳不了RETURNRPG中不能有空行,会报错,而RPGLE则不会,可以用命令CVTRPGSRC将RPG代码转换为RPGLE


RPG操作码中MOVE和EVAL都可以实现赋值操作,但是MOVE操作的Factory1和Factory2类型可以不相同,而EVAL则不可以(会报错),将26个英文字母赋值给数字型变量时,是有规律的:A至I分别对应数字1至9,而J至R分别对应1-至9-(即使数字型变量只有1位,输出时仍会为2位,例如“2-”),S至Z分别对应2至9,所有把字符型变量赋值给数字型时要注意,一般建议同类型赋值、同长度赋值,这样不容易出错。

对文件操作时,虽然定义PF和LF比较简单,但是在使用文件操作码时一定要注意键值列表的参数个数是否和LF中定义的Key值个数一致,如果不一致则使用该操作码时要分清:

Factory1     Option    Factory2    Result


KeyList       CHAIN    LFFMT           //假设用CHAIN定位

 READ      LFFMT  与

KeyList       READ      LFFMT 的区别

即READ前的Factor1写与不写有的时候是会有区别的。

AS400中确定一个目标有四个要素:Library Name、File Name、File Type and File Attribute,AS400中存储是一个单级结构,这一点一定要清楚,和Windows,Linux,Unix,Mac都是不一样的;使用中文支持“CHGSYSLIBL QSYS2989”(有时候写程序时需要中文注释,需要选择DDCS,数据库中要支持中文输入类型必须使用O,默认不支持中文),不需要中文支持使用命令CHGSYSLIBL QSYS2989 OPTION(*REMOVE)”(其实中文支持仅仅只是汉化了部分简单的菜单的名称而已,重要的根本没汉化,所以建议用英文结合汉语注释就可以)

AS400中库下面不能再存在库,库下面只能存储目标,但是根库QSYS除外,其下存放了其他一些重要的库;当前默认库为QGPL,所以编译或执行程序时要加入你的库到当前库(可以使用EDTLIBL或者ADDLIBLE LibraryName);LF只能对应一个PF,但是一个PF可以对应N个LF;定义PF时一般不建议将Key定义在里面,Key最好在LF中定义;数据库文件有多个Member是为了加快查询速度;F18可以修改TYPE与TEXT的编辑状态,使之能否被编辑;DTAQ只是内存中的一块临时数据,取出后就会消亡,而DTAARA是在内存中一直存在的一块数据,数据取出后不会消失,除非重新写入;一般建议程序不要写死,使用库的地方建议写成“*LIBL”;I表和O表是RPG特有的,而在RPGLE中则不区分,RPGLE已经不使用E表;MOVE为RPG语法,EVAL为RPGLE语法,效率比MOVE低。






 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics