问题标签 [rpgle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
1484 浏览

memory-management - RPGLE 程序中的内存泄漏可以持续多长时间?

我正在生产一些使用%allocdealloc分配内存的 RPGLE 代码。程序员应该能够确保不会导致内存泄漏,但我担心如果他们不这样做会发生什么。

我的问题是:如果程序员搞砸了并且有内存泄漏,那么什么时候可以回收这些内存?是程序离开内存时还是作业完成时?

0 投票
4 回答
11428 浏览

stored-procedures - IBM i 上的外部存储过程

我正在尝试在 IBM i (V5R4) 上创建一个外部存储过程,但是当我尝试运行它时出现错误。

我要做的就是调用一个 RPG 程序,无需传递任何参数或担心返回任何数据。抱歉,我不是 RPG 程序员或 IBM i 专家,所以我可能会遗漏一些非常简单的东西。

创建过程的 SQL:

执行 CALL SOMELIB.SOMEPROC() 时出现的错误是:

SQL 状态:38501
供应商代码:-443
消息:[CEE9901] 应用程序错误。RNX1216 在语句 2100000001,指令 X'0000' 处不受 BB1002RG 监控。原因 。. . . . : 应用程序异常结束,因为发生了异常,没有处理。未处理的异常被发送到的程序的名称是 SOMERG SOMERG 。在发送消息时,程序在高级语言语句编号处停止。如果显示多个语句编号,则该程序是优化的 ILE 程序。优化不允许确定单个语句编号。如果 *N 显示为值,则表示实际值不可用。恢复 。. . :查看前面列出的低级消息来定位异常的原因。更正任何错误,然后重试请求。

0 投票
4 回答
874 浏览

refactoring - 在 iSeries (RPG) 中进行重构,是否现实

在项目中实施敏捷需要进行重构的能力。这并不是必须的,但代码重构已被证明是一种很好的工程实践。

在 iSeries 平台上的敏捷 (Scrum) 项目中,需要在 RPG、RPG LE 中进行开发(新代码和对遗留代码的修改),是否可以实现重构?如果是这样,有什么技术可以做到这一点?

如果尝试过的人可以分享他们的经验或只是指出参考,我将不胜感激。

0 投票
2 回答
3215 浏览

ibm-midrange - 如何获取 RPGLE 中角色的 EBCDIC 值?

我需要有某种方法将 RPGLE 中的单个字符转换为整数 - 有人知道一个好方法吗?它必须适用于所有可能的输入,并且理想情况下为每个输入提供不同的整数 - 至少它必须为所有常见输入提供不同的值。我并不特别关心整数是什么。在类似 C 的语言中,我会采用 ASCII 值或类似的值 - 理想情况下,我想要与之等效的东西。

举例说明我希望它如何工作:

这将打印

但请注意,我实际上并不关心数字是什么,只是它们对于每个输入都是不同的。

所有这些都有助于在 RPGLE 中为字符数据构建散列函数,所以如果你知道这样做的好方法,那将是一个更好的答案。

0 投票
3 回答
607 浏览

ibm-midrange - ILE RPG 中是否存在会溢出而不会导致程序崩溃的数字类型?

我正在 ILE RPG 中寻找一种数字类型,当它溢出时会“环绕”,类似于 C int 的方式。有这样的事吗?

0 投票
1 回答
536 浏览

c# - 使用 RPG 和 .NET 来回传递 XML

我不知道使用 RPG 和 C#.NET 来回传递 XML 的最佳实践。本来我打算在QTEMP中使用一个临时物理文件,但似乎应该有更好的方法。临时文件在文件的一条记录中有一行文档。对我来说,这似乎增加了很多实际上不应该需要的额外工作。我正在寻找双向沟通。

一种想法是来回传递 32000 char 参数,但这真的是个好主意吗?如果文档碰巧比这大怎么办?我不认为我会达到这个极限,所以也许我会没事?

创建一个临时 IFS 文件怎么样?这似乎也比需要的工作多。

你怎么认为?

显然,RPG 和 C# 程序都将读取和处理 XML 文档。

0 投票
4 回答
3568 浏览

java - 从 Java 调用 AS400 RPG

我对 AS400 和 RPG 的了解非常有限 (0)。但是我们有一个迫切的需求,我们需要从一个 java 类中调用一个 RPG 程序。所以我发现我们可以通过JTOpen来实现。但我坚持声明 ProgramParameter 列表。我有以下关于 RPG 程序的信息

程序名称:ZM30000R 参数:Branch 7,0(数字)
账户类型 2(01-支票,02 储蓄)
帐号 20(字符)
错误代码 7(字符)DR/CR 指示符 1(字符 D,C)

但不知道什么是输入和输出。如何声明 ProgramParameter。我做了如下。我也无法测试,因为我没有与这些系统的连接。

任何帮助都会非常有用。

谢谢并恭祝安康,

斯里尼瓦斯

0 投票
1 回答
1140 浏览

ibm-midrange - rpg程序的递归运行

我正在递归地运行一个 rpg 程序,它给出了一个像这个应用程序错误这样的错误。RNX8888 在语句 *N,指令 X'0000' 处不受 PGM1 监控。触发程序或外部例程检测到错误.....解决方法可能是什么...紧急..谢谢

0 投票
1 回答
1030 浏览

c# - 将 RPG 与 C# 和 SQL 进行比较

在一个 RPG 程序(AS/400 上的一种 IBM 语言)中,我可以“链接”到一个文件以查看文件中是否存在一条记录(例如,某个客户记录)。如果是这样,那么我可以立即使用新数据更新该记录。如果记录不存在,我可以写一条新记录。代码如下所示:

对 SQL/C# 不太熟悉,我想知道是否有一种方法可以从文件中进行随机检索(这就是 RPG 中的“链”所做的)。基本上我想看看是否存在记录。如果是这样,请使用一些新信息更新记录。如果没有,那么我想写一条新记录。我确信这是可能的,但不太确定如何去做。任何建议将不胜感激。

0 投票
2 回答
1486 浏览

ibm-midrange - 在更新 rpgle 中的键值时处理指针

我的代码是这样的:

这是一个名为 emp 的文件,其记录格式名称为 recemp,以 ecode 为键...

现在,当我读取文件然后在不使用 setgt 的情况下更新 ecode 时。指针没有向前移动,它正在多次更新相同的 ecode 值...

现在,当我使用 set gt 指针选择下一条记录时,但是当两个 ecode 值相同时它不起作用......否则它也不会使用降序键值......

是否有任何解决方案,以便我可以设置指针,而不管值是否相同或升序或降序。