ibm-midrange - AS400 文件格式级别标识符不断变化

标签 ibm-midrange rpgle

我有一个奇怪的问题,运行程序时出现级别检查错误。我通过重新编译文件和程序来纠正该问题。 我使用 DSPFD 检查文件的格式级别标识符,并使用 DSPPGMREF 检查程序的该文件的格式级别标识符,并确保这些在重新编译后匹配,并且它们确实匹配。

然后我使用 CALL 来运行程序,然后出现级别检查错误。当我使用相同的过程来检查标识符时,文件的标识符已更改。

我已经尝试了尽可能多的方法,包括完全删除文件对象并编译和创建一个新的文件对象,程序也是如此。 我还尝试重新编译文件和程序,并将格式级别检查属性设置为 *NO 文件和程序名称上的 WRKOBJ (*ALL/[文件名]) 也仅显示正确库中的一个对象。不存在其他对象

请帮忙,这太令人沮丧了。

下面的屏幕截图显示

之前: FILE Format Level Identifier Before Program Format Level Identifier for File Before 后: FILE Format Level Identifier After Program Format Level Identifier For File AFTER

最佳答案

文件记录格式级别 ID 不会自动更改...

要么评论者是正确的,并且您遇到了库列表问题并处理多个副本...

或者正在对文件执行某些更改记录格式级别 ID 的操作。

根据 docs

The system assigns a unique level identifier for each record format when it creates the associated file. The system uses the following information to determine the level identifier:

  • Record format name
  • Field name (10 char system name, not long alias)
  • Total length of the record format
  • Number of fields in the record format
  • Field attributes (for example, length and decimal positions)
  • Order of the field in the record format

您可以尝试在编译之前和级别检查之后使用显示文件字段描述 (DSPFFD) 命令,以便确定发生了什么变化。然后就是追查地点/原因的问题。

关于ibm-midrange - AS400 文件格式级别标识符不断变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50991288/

相关文章:

c# - 如何使用 cwbx.dll 和 AS400System 类从 C# 到 IBM i (iSeries) 设置库列表

java - SQL7008 错误 - 解决方法?

PC 上 Iseries 上的 Java IFSFile 测试

ibm-midrange - 调用传递数组的外部程序时如何使用 LIKE 关键字

unix - 在 IBM i qsh 中使用 Unix ls 在 ifs 上的文件的对象列表

ibm-midrange - RPGLE 中整数类型的标准选择应该是什么?

java - AS/400 中未找到类错误

java - 从 Java 访问 iSeries 上的 RPG

ibm-midrange - 如何在 IBM i 上的 RPG 中查找子过程用法?

c# - 如何将我的字符串拆分为 3 个分隔字符串(无论子字符串长度如何)?