2012-08-28 45 views
0

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

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

+5

要访问Web服务,很可能您正在使用Scott Klement的HTTPAPI软件,该软件有自己的支持。 http://scottklement.com/ftpapi/ftpapilist.html将允许您注册支持邮件列表,在那里您可以发布您的问题并获得_very_helpful_响应。 – Dennis

+0

@丹尼斯感谢这是一个伟大的帮助将调查 – ZioN

+1

你可能想看看这个相关的问题http://stackoverflow.com/questions/10457764/how-to-learn-rpg-400 – kratenko

回答

5

这是一个非常宽泛的问题。如果你能解释一些关于为什么RPG IV和你将使用它的问题,答案的用处将会增加。

与Java或C++不同,RPG IV没有任何基于PC的编译器。 RPG IV仅在IBM中端系列计算机上运行,​​因此有必要访问其中一个以尝试任何代码。 Holger Scherer has a public machine available;可能还有其他的,但它是一个薄弱的市场。

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

编辑:

RPG IV并不难,如果你正在看就明白。写它是一个更多的工作:-)另外,它听起来好像你有一个本地的来源,可以引导你通过一些看起来很奇怪的部分。我现在的建议是将RPG IV程序加入调试并观察来回发生的事情。 (STRDBG)比较Web服务作者提供的任何示例(使用Java,也许?)并查看HTTP请求是否有些格式错误。

由于这个问题是关于学习RPG而不是调试500错误,我将继续专注于学习方面。如果您需要调试帮助,请发起一个不同的问题并发布相关代码。获得代码的方法是在RPG IV程序上找到DSPPGM,然后查找构成它的模块。显示模块的细节(选项5)并跟踪源文件,库和成员名称。然后,在源文件和库上输入,并在右上角的“位置到”字段中输出源成员名称。按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规格的变体是扩展系数2.同样的计算看起来像这样(empty factor 1) EVAL BUFFERLEN = BUFFERLEN + 1。当你在代码中看到它时,这会更有意义。

自由格式计算根本不关心列。上面的计算看起来像BUFFERLEN += 1;BUFFERLEN = BUFFERLEN + 1;

O规范描述如何产生内部描述的输出。这通常用于打印报告,但您可能会遇到这里描述实际文件输出的情况。

子程序是不言自明的。子程序可能需要一些解释。这些基本上是函数调用。 PR规范描述了原型,因此编译器将能够键入检查变量,并且PI规范描述了实际的过程。在过程中声明的变量(在D规格中)是该过程的本地变量。您可能会遇到不包含在RPG程序源中的程序,而是绑定到服务程序中。您将能够看到DSPPGM中的那些人。

+0

嗯,我已经采取你的建议,并按照你的建议编辑问题。现在我可以看到,RPG不仅仅是学习新的语言。但是我对IBM中端机器有一些了解。 – ZioN

+1

BuckCalabro为您写了一个很好的答案。按照他的手册链接。就我个人而言,我认为RTFM是这个平台遵循的一个很好的策略。对于现代应用程序,我会推荐SQL可用于磁盘/数据库文件的DDS,但显示文件需要DDS,建议用于打印文件。 – WarrenT