我有一个奇怪的问题,运行程序时出现级别检查错误。我通过重新编译文件和程序来纠正该问题。 我使用 DSPFD 检查文件的格式级别标识符,并使用 DSPPGMREF 检查程序的该文件的格式级别标识符,并确保这些在重新编译后匹配,并且它们确实匹配。
然后我使用 CALL 来运行程序,然后出现级别检查错误。当我使用相同的过程来检查标识符时,文件的标识符已更改。
我已经尝试了尽可能多的方法,包括完全删除文件对象并编译和创建一个新的文件对象,程序也是如此。 我还尝试重新编译文件和程序,并将格式级别检查属性设置为 *NO 文件和程序名称上的 WRKOBJ (*ALL/[文件名]) 也仅显示正确库中的一个对象。不存在其他对象
请帮忙,这太令人沮丧了。
下面的屏幕截图显示
最佳答案
文件记录格式级别 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/