我想学习一些RPGIV.我对这门语言了解不多.我正在寻找一个免费的在线资源,到目前为止我刚刚找到了我必须支付的网站.
我想学习的原因是,我们正在使用调用Web服务的RPG函数.它给出了一般的内部服务器错误500.所以我想学习RPGIV所以我可以提出正确的问题,并解决这个问题.
这是一个非常广泛的问题.如果你能解释为什么RPG IV以及你将用它做什么,那么答案的用处会增加.
与Java或C++不同,RPG IV没有任何基于PC的编译器.RPG IV仅在IBM中端系列计算机上运行,因此有必要访问一个以试用任何代码. Holger Scherer有一台公共机器 ; 可能还有其他人,但这是一个薄弱的市场.
一般来说,学习RPG IV是不够的.为了能够在中型计算机上使用,您还需要了解最低限度的DDS和CL.除此之外,您还应该学习一些基本的工作管理概念,例如查找编译器列表中的哪个输出队列,如何将作业提交到批处理(以及"作业"是什么!)以及如何使用库列表.我也强烈建议学习ILE.内置数据库是DB2变体; 一个初级程序员不会关心创建数据库,而是了解它是如何构建的,各个表如何相互关联.这完全取决于数据库,设计它的业务.作为程序员,您将使用嵌入式SQL,因此请查看该手册以及SQL编程和SQL参考手册.
编辑:
如果您正在阅读它,RPG IV并不难理解.写它是更多的工作:-)而且,听起来好像你有一个本地资源,可以引导你通过一些可能看起来很奇怪的部分.我的直接建议是将RPG IV程序调试并观察来回的内容.(STRDBG
)比较Web服务作者提供的任何示例(在Java中,可能?)并查看HTTP请求是否以某种方式格式错误.
由于这个问题是关于学习RPG而不是调试500错误,我会专注于学习方面.如果您需要有关调试的帮助,请启动其他问题并发布相关代码.获取代码的方法是DSPPGM
在RPG IV程序上查找构成它的模块.显示模块的详细信息(选项5)并跟踪源文件,库和成员名称.然后,WRKMBRPDM
在源文件和库中,在右上角的"Position to"字段中输出源成员名称.按Enter键,该源成员将位于列表的顶部.使用选项5浏览源成员.
简而言之,F规范描述了程序将使用的表.RPG使用的文件中包含的操作码READ
,WRITE
,EXCEPT
,UPDATE
.如果程序使用嵌入式SQL,则除了RPG使用的表之外,还可能存在SQL使用的表.您将在EXEC SQL
语句中看到指定的那些.
D规范描述了所有工作变量,包括单个变量,数组和数据结构.
C规范是进行实际计算的地方.这些被认为是使用/自由形式计算但您可能会遇到它们的人弃用.固定形式的C-specs是columnnar; 特定列意味着非常具体的事情.最重要的列是因子1,操作码,因子2和结果.此样式的典型计算可能是BUFFERLEN ADD 1 BUFFERLEN
将变量BUFFERLEN递增1.
固定格式C-specs的变体是扩展因子2.相同的计算看起来像这样(empty factor 1) EVAL BUFFERLEN = BUFFERLEN + 1
.当您在代码中看到它时,这将更有意义.
自由格式计算根本不关心列.上面的计算看起来像BUFFERLEN += 1;
或BUFFERLEN = BUFFERLEN + 1;
O规范描述了如何产生内部描述的输出.这通常用于打印报告,但您可能会遇到这里描述实际文件输出的情况.
子程序是不言自明的.子程序可能需要一些解释.这些基本上是函数调用.PR规范描述原型,因此编译器将能够键入检查变量,PI规范描述实际过程.在过程中声明的变量(在D-specs上)是该过程的本地变量.您可能会遇到未包含在RPG程序源中的过程,而是绑定到服务程序中.你将能够看到那些DSPPGM
.