什么是IBM i(AS400)记录格式

时间:2015-01-30 15:29:26

标签: db2 ibm-midrange rpgle

我已经开始在ILE RPG中做一些编程了,我很好奇一件事 - 记录格式究竟是什么?我知道它必须在物理/逻辑/显示文件中定义,但究竟是什么呢?在97年的一本旧RPG书中,我发现“每种记录格式定义了在单个I / O操作中写入或读取工作站的内容”

在另一本书中,我发现记录格式描述记录中的字段(例如长度,类型如char或decimal?)。

最后,究竟是什么意思“物理文件中的每条记录必须具有相同的记录布局”?

我现在有点困惑。还不确定什么是记录格式:F。

4 个答案:

答案 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)

然后你可以看到有关该文件的所有内容。记录格式名称在那里。