0

我想学习一些RPGIV。我对语言了解不多。我正在寻找免费的在线资源,到目前为止,我刚刚找到了需要付费的网站。

我想学习的原因是我们正在使用调用 Web 服务的 RPG 函数。它给出了一般的内部服务器错误 500。所以我想学习 RPGIV,这样我就可以提出正确的问题并解决这个问题。

4

1 回答 1

5

这是一个非常广泛的问题。如果您能稍微解释一下为什么 RPG IV 以及您将使用它的用途,那么答案的有用性将会增加。

与 Java 或 C++ 不同,RPG IV 没有任何基于 PC 的编译器。RPG IV 仅在 IBM 中端系列计算机上运行,​​因此必须访问其中一台才能尝试任何代码。 Holger Scherer 有一台公共机器可用;可能还有其他人,但这是一个稀薄的市场。

一般来说,学习RPG IV是不够的。为了能够在中端计算机上发挥作用,您还需要至少了解DDSCL 。除此之外,您还应该学习一些基本的工作管理概念,例如查找编译器列表进入哪个输出队列、如何将作业提交到批处理(以及什么是“作业”!)以及如何使用库列表。我也强烈建议您也学习ILE。内置数据库是DB2变体;一个初级程序员不会关心创建数据库,而是了解它是如何构建的,各种表是如何相互关联的。这严格依赖于数据库,依赖于设计它的业务。作为程序员,您将使用嵌入式 SQL,因此请查看该手册以及SQL 编程SQL 参考手册。

编辑:

如果您正在阅读 RPG IV,它并不难理解。编写它需要更多的工作:-) 另外,听起来好像您有一个本地资源可以引导您完成一些看起来很奇怪的部分。我的直接建议是将 RPG IV 程序进行调试并观察来回运行。( STRDBG) 将其与 Web 服务作者提供的任何示例进行比较(可能是在 Java 中?)并查看 HTTP 请求是否存在某种格式错误。

由于这个问题是关于学习 RPG 而不是调试 500 错误,所以我将继续专注于学习方面。如果您需要调试方面的帮助,请提出不同的问题并发布相关代码。获取代码的方法是DSPPGM在 RPG IV 程序上查找组成它的模块。显示模块的详细信息(选项 5)并跟踪源文件、库和成员名称。然后,WRKMBRPDM在源文件和库上,在右上角的“位置”字段中输出源成员名称。按 Enter,该来源成员将位于列表顶部。使用选项 5 浏览源成员。

非常简单地说,F 规范描述了程序将使用的表。RPG 使用带有READ, WRITE, EXCEPT,等操作码的文件UPDATE。如果程序使用嵌入式 SQL,除了 RPG 使用的表之外,可能还有 SQL 使用的表。EXEC SQL您会在声明中看到指定的内容。

D 规范描述了所有工作变量,包括单个变量、数组和数据结构。

C 规范是进行实际计算的地方。那些使用 /free 格式计算的人认为这些已弃用,但您可能会遇到它们。固定形式的 C 规范是柱状的;特定的列意味着非常具体的事情。最重要的列是因子 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 规范中)是该过程的本地变量。您可能会遇到不包含在 RPG 程序源中,而是绑定到服务程序中的过程。您将能够在DSPPGM.

于 2012-08-28T14:03:27.217 回答