我已经开始在ILE RPG中做一些编程了,我很好奇一件事 - 记录格式究竟是什么?我知道它必须在物理/逻辑/显示文件中定义,但究竟是什么呢?在97年的一本旧RPG书中,我发现“每种记录格式定义了在单个I / O操作中写入或读取工作站的内容”
在另一本书中,我发现记录格式描述记录中的字段(例如长度,类型如char或decimal?)。
最后,究竟是什么意思“物理文件中的每条记录必须具有相同的记录布局”?
我现在有点困惑。还不确定什么是记录格式:F。
答案 0 :(得分:4)
仍然不确定什么是记录格式:F
F规范:该规范也称为文件规范。这里我们声明我们将在程序中使用的所有文件。文件可以是物理文件,逻辑文件,显示文件或打印机文件中的任何一个。消息文件未在F规范中声明。
究竟意味着“物理文件中的每条记录必须具有相同的记录布局”?
一个物理文件中的每个记录都具有相同的布局。
让我们制作40个字符的记录布局。
----|---10----|---20----|---30----|---40
20150130 DEBIT 00002100
20150130 CREDIT 00012315
带有数字的栏不是记录布局的一部分。它就在那里我们可以计算列数。
记录布局中的第一个字段是yyyymmdd格式的日期。这需要8个字符,从位置1到位置8。
第二个字段是2个空格,从第9位到第10位。
第三个字段是借方/贷方指标。从位置11到位置20,它占用10个字符。
第四个字段是借方/贷方金额。它占据了8个位置,从位置21到位置28.格式假设为9(6)V99。换句话说,在第26和27位之间有一个隐含的小数点。
第五个字段是更多的空格,从第29位到第40位。
此文件中的每条记录都有这5个字段,所有字段都以相同的方式定义。
答案 1 :(得分:1)
“记录格式”是用于设备文件I / O的命名结构。它包含“记录”(或“行”)中每列的描述。数据类型和大小的特定组合以及列的数量和顺序被散列为一个称为“记录格式标识符”的值。
一个重要的目的是编译程序在编译的程序对象中包含“记录格式标识符”,以便在打开相关文件时使用。系统会将程序对象的格式ID与文件的当前格式ID进行比较。如果两者不匹配,系统将通知程序自编译程序以来文件定义已更改。然后程序可以知道它可能会读取与它知道的定义不匹配的数据。通过发送表明格式级别已经改变的消息,即“级别检查”失败,几乎所有这些程序都被允许失败。
格式ID的处理植根于原始的“本机文件I / O”,它早于SQL等设施。它是DB2与系统上可用的各种程序编译器之间集成的一部分。
“原生”数据库文件系统是使用最终导致SQL的原则开发的。 SQL表应该包含所有包含相同系列列定义的行。这与说"every record within a physical file must have an identical record layout"
几乎相同。
物理数据库文件可以被认为是SQL表。逻辑数据库文件可以被认为是SQL视图。因此,物理文件中的所有记录都将具有相同的定义,但逻辑文件中存在一些可能的变化。
答案 2 :(得分:1)
新的或年轻的开发者认为物理文件中的每个记录必须相同,但在远古时代,恐龙在地球上行走,而在一个单独的文件中,您可以拥有多种类型的记录或者记录#34;记录格式" ,因为名称表示记录格式是文件中记录的格式。
答案 3 :(得分:0)
记录格式这是你在旧学校学到的东西。您读取文件(表)并通过记录格式更新/写入。
DSPFD FILE(myTable)
然后你可以看到有关该文件的所有内容。记录格式名称在那里。