我想学习一些RPGIV。我对这门语言了解不多。我正在寻找一个免费的在线资源,到目前为止我刚刚找到了我需要付费的网站。
我想学习的原因是,我们使用的是调用Web服务的RPG函数。它给出了一般的内部服务器错误500.所以我想学习RPGIV所以我可以提出正确的问题,并解决这个问题。
答案 0 :(得分:5)
这是一个非常广泛的问题。如果你能解释为什么RPG IV以及你将用它做什么,那么答案的用处会增加。
与Java或C ++不同,RPG IV没有任何基于PC的编译器。 RPG IV仅在IBM中端系列计算机上运行,因此有必要访问一个以试用任何代码。 Holger Scherer has a public machine available;可能还有其他人,但这是一个薄弱的市场。
一般来说,学习RPG IV是不够的。为了能够在中端计算机上使用,您还需要至少了解DDS和CL。除此之外,您还应该学习一些基本的工作管理概念,例如查找编译器列表中的哪个输出队列,如何将作业提交到批处理(以及“作业”是什么!)以及如何使用库列表。我也强烈建议您学习ILE。内置数据库是DB2变体;一个初级程序员不会关心创建数据库,而是了解它是如何构建的,各个表如何相互关联。这完全取决于数据库,设计它的业务。作为程序员,您将使用embedded SQL,因此请查看该手册以及SQL programming和SQL Reference手册。
修改强>
如果您正在阅读它,RPG IV并不难理解。写它是更多的工作:-)而且,听起来好像你有一个本地资源,可以引导你通过一些可能看起来很奇怪的部分。我的直接建议是将RPG IV程序调试并观察来回的内容。 (STRDBG
)将这与网络服务作者提供的任何示例进行比较(在Java中,可能?)并查看HTTP请求是否以某种方式格式错误。
由于这个问题是关于学习RPG而不是调试500错误,我会专注于学习方面。如果您需要有关调试的帮助,请启动其他问题并发布相关代码。获取代码的方法是在RPG IV程序上DSPPGM
并查找包含它的模块。显示模块的详细信息(选项5)并跟踪源文件,库和成员名称。然后,在源文件和库上WRKMBRPDM
,在右上角的“位置到”字段中输出源成员名称。按Enter键,该源成员将位于列表的顶部。使用选项5浏览源成员。
非常简单,F规范描述了程序将使用的表。 RPG使用包含READ
,WRITE
,EXCEPT
,UPDATE
等操作代码的文件。如果程序使用嵌入式SQL,则除了RPG使用的表之外,还可能存在SQL使用的表。您将在EXEC SQL
语句中看到指定的内容。
D-specifications描述了所有工作变量,包括单个变量,数组和数据结构。
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
。