Chinaunix首页 | 论坛 | 博客
  • 博客访问: 309170
  • 博文数量: 40
  • 博客积分: 1
  • 博客等级: 民兵
  • 技术积分: 670
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-31 11:19
个人简介

从事银行核心系统设计开发的程序猿

文章存档

2019年(1)

2018年(4)

2017年(11)

2016年(6)

2015年(18)

分类: 信息化

2015-05-31 15:17:56

    系统选择了V6R1的版本,ILE环境(从OPM转到ILE不需要解释了吧)。这是因为V6R1有一个重大提升:RPG程序内部结构的大小限制从64K提升到了16M。这让DS,数组更具实用性。例如,交易程序的PARM,通常是输入接口复合DS,输出接口复合DS,遇到数组时64K就不够用。V7R1,V7R2也有不少改变,特别是V7R2,完善了自由格式,可以让H,F,D等全部拥有了自由格式写法,并且不需要/FREE,/END-FREE标识符即可自由格式固定格式混用,真是不错的选择。当时详细分析了6.1,7.1,7.2的语法改进,下面介绍下不同版本在开发上的重要改进。

    7.2
    CL语言
    对字符串新增了6个函数,%CHECK,%CHECKR,%SCAN,%TRIM,%TRIML,%TRIMR。
    新增6个转换函数,%CHAR,%DEC,%INT,%UINT,%LOWER,%UPPER。
    新增2个大小函数,%LEN,%SIZE。
    是不是CL中处理方便多了?可惜在7.2才能用,6.1只能看看了。

    C/C++语言
    没有什么需要关注的改动。

    RPG语言
    放松对IO输入输出结构的要求。使用*ALL可以让LIKEREC结构可以用在读写等任何IO操作上。这点非常有用,以后介绍LIKEREC时候再详细比较。
    增加了CTL-OPT写法,用于自由格式H表定义。
    增加了DCL-F写法,用于自由格式F表定义。
    增加了DCL-C, DCL-DS, DCL-PI, DCL-PR, DCL-S写法,用于自由格式D表定义。
    增加了DCL-PROC写法,用于子过程定义。
    不再要求/FREE,/END-FREE,自由格式和固定格式可以任意混合编写。
    %SUBDT增加参数,使得可以指定返回几位数字,例如%SUBDT(MyDate:*YEARS:4)。
    timestamp类型可以保存秒以下12位小数(纳秒?),相应的%TIMESTAMP也增加了参数用于指定小数位数。
   

    7.1
    CL语言
    可以使用RTVCLSRC从目标对象来获取ILE CL的源代码了。不过要求编译时ALWRTVSRC参数指定为*YES。
    INT,UINT类型长度可以扩展到8字节。
    可以在编译程序时,用DBGENCKEY,使得只有输入正确的KEY,才能看到源码视图。(这个,嘿嘿)
    CL中的INCLUDE支持嵌套了。

    C/C++语言
    没有什么需要关注的改动。

    RPG语言
    SORTA和%LOOKUP可以依据DS结构的某一个字段,来排序或检索数组啦。例如:SORTA custDs(*).amount_owing; elem = %LOOKUP("K" : custDs(*).account_status);
    SORTA可以用(A),(D)来正序,逆序排序数组。
    增加了%SCANRPL函数,用于将一个字符串中的子串,替换为制定的字符串。(报错信息替换的神器啊,可惜V6R1不能用)
    可以在编译程序时,用DBGENCKEY,使得只有输入正确的KEY,才能看到源码视图。


    6.1
    CL语言
    增加CLOSE语句,可以关闭RCVF打开的文件,用于多次读取一个文件的场景。
    增加INCLUDE语句,包含另外CL一个源文件。

    C/C++语言
    没有什么需要关注的改动。

    RPG语言
    文件定义时候可以指定QUALIFIED,记录格式名变成MYFILE.MYFMT,避免文件内字段名字对程序全局字段的名字污染。但文件操作必须使用DS结构。这点稍后会详细介绍。
    EXTDESC和EXTFILE(*EXTDESC),使得可以编译期不再需要绑定文件描述,而使用字符串形式的'LIBNAME/FILENAME',运行期再去打开文件。
    EXTNAME可以使用字符串形式'LIBNAME/FILENAME',同样不需要编译器绑定文件。
    扩大DS,可变字符串等的最大限制,大小扩到16M。可变字符串的VARYING关键字允许指定2或4字节存放长度,%ADDR(varying : *DATA)可以获取到除去长度后的数据位置指针。
    DIM和OCCURS数组的最大限制,元素个数扩充到16M个,但总大小不超过16M。
    字符串常量大小扩到16k。
    TEMPLATE关键字可用于文件定义和结构定义,不占用存储空间,通常为了LIKEFILE,LIKE,LIKEDS使用。TEMPLATE DS可以有INZ定义,方便参照它的结构使用INZ(*LIKEDS)来初始化。
阅读(3396) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~