Chinaunix首页 | 论坛 | 博客
  • 博客访问: 24285
  • 博文数量: 3
  • 博客积分: 74
  • 博客等级: 民兵
  • 技术积分: 61
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-05 14:35
文章分类
文章存档

2011年(3)

我的朋友

分类: 系统运维

2011-11-28 22:16:49

    大型开发项目,要有合理的架构设计。为使程序简洁,需要统一规划,有一部分程序可以作为公共程序,供应用程序加载,这样能简化应用程序的代码。用来加载公共程序的指令有/COPY和/INCLUDE。下面先分析一下这两个指令。
    二者用法基本一致,支持多层嵌套,嵌套深度由关键字COPYNEST决定,没有指定时最大嵌套数为32,设计时要防止嵌套无数次的情况。加载格式如:“/COPY Library file,member”。不同之处在于/COPY被扩展到了SQL预处理器中,可以使用嵌入SQL语句和主机变量,而/INCLUDE不可。
    看到这里,有人会问只用/COPY不就行了?其实只用/COPY还是会出现一些问题:首先SQL预处理器不允许嵌套使用/COPY,还有它不能保证正确编译条件编译命令。所以当使用嵌入SQL语句和主机变量时,需要用/COPY,倘若还需要嵌套的话,就要用/INCLUDE。如果不涉及使用嵌入SQL语句和主机变量,那么这两个指令就可以随便用了。
    条件编译指令有两个:/DEFINE和/UNDEFINE。首先要明白预处理定义列表这个概念,条件编译控制就是根据这个列表进行的。/DEFINE可以把定义的条件加入列表,/UNFINE可以把定义的条件从列表中删除。有一些RPG编译器早已定义好的预定义条件,/DEFINE和/UNDEFINE对这些条件无效。如   *ILERPG,*CRTBNDRPG,*CRTBNDMOD,*VxRxMx。
    判断条件指令有:/IF,/ELSEIF,/ELSE,/ENDIF,/EOF。其中/EOF的作用是编译器不编译整个源文件在/EOF之后的内容。利用/EOF可以优化编译速度,比如当一个源文件被/COPY很多次,但只会被使用一次的情况。需要注意的是:一个IF组内最多有一个/ELSE,/ELSEIF不能在/ELSE之后。还有一个IF组内的指令必须在同一个源文件中。
阅读(2260) | 评论(0) | 转发(0) |
0

上一篇:RPG编程技巧2_Chain、Setll、Read的作用与区别

下一篇:没有了

给主人留下些什么吧!~~