Db2 什么是IBMi(AS400)记录格式

Db2 什么是IBMi(AS400)记录格式,db2,ibm-midrange,rpgle,Db2,Ibm Midrange,Rpgle,我开始用ILERPG做一些编程,我很好奇一件事——记录格式到底是什么?我知道它必须在物理/逻辑/显示文件中定义,但它具体做什么?在97年的一本旧RPG书中,我发现“每个记录格式定义了在单个I/O操作中写入工作站或从工作站读取的内容” 在另一本书中,我找到了一个定义,记录格式描述了记录中的字段(例如,长度、类型(如char或decimal?) 最后,到底什么意思是“物理文件中的每个记录都必须具有相同的记录布局” 我现在有点困惑。仍然不确定什么是记录格式:F 仍然不确定什么是记录格式:F F规范:该

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

在另一本书中,我找到了一个定义,记录格式描述了记录中的字段(例如,长度、类型(如char或decimal?)

最后,到底什么意思是“物理文件中的每个记录都必须具有相同的记录布局”

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

仍然不确定什么是记录格式:F

F规范:该规范也称为文件规范。在这里,我们声明我们将在程序中使用的所有文件。这些文件可以是物理文件、逻辑文件、显示文件或打印机文件中的任意一个。消息文件未在F规范中声明

“物理文件中的每个记录必须具有相同的记录布局”的确切含义是什么

一个物理文件中的每个记录都有相同的布局

让我们制作一个40个字符的记录布局

----|---10----|---20----|---30----|---40
20150130  DEBIT     00002100
20150130  CREDIT    00012315
带有数字的栏不是记录布局的一部分。它就在那里,我们可以数列

记录布局中的第一个字段是yyyymmdd格式的日期。这将占用8个字符,从位置1到位置8

第二个字段是2个空格,从位置9到位置10

第三个字段是借方/贷方指示器。它占10个字符,从位置11到位置20

第四个字段是借方/贷方金额。它占据8个位置,从位置21到位置28。假定格式为9(6)V99。换句话说,位置26和27之间有一个隐含的小数点

第五个字段是更多的空格,从位置29到位置40

此文件中的每个记录都有这5个字段,所有字段的定义方式都相同

“记录格式”是用于设备文件I/O的命名结构。它包含“记录”(或“行”)中每列的描述。数据类型和大小以及列的数量和顺序的特定组合被散列为一个称为“记录格式标识符”的值

一个重要的目的是编译器在编译的程序对象中包含“记录格式标识符”,以便在打开相关文件时使用。系统将比较程序对象的格式ID与文件的当前格式ID。如果两者不匹配,系统将通知程序自编译程序以来文件定义已更改。然后程序就可以知道它可能要读取与它知道的定义不匹配的数据。几乎所有这样的程序都可以通过发送一条消息来失败,该消息指示格式级别已更改,即“级别检查”失败

格式ID的处理源于原始的“本机文件I/O”,该文件早于SQL等工具。它是DB2和系统上可用的各种程序编译器之间集成的一部分

“本机”数据库文件系统是使用最终产生SQL的原理开发的。SQL表中的行都应该包含相同的列定义系列。这与说
“物理文件中的每个记录都必须具有相同的记录布局”差不多


物理数据库文件可以看作是SQL表。逻辑数据库文件可以看作是SQL视图。因此,物理文件中的所有记录都具有相同的定义,但逻辑文件中存在一些潜在的变化。

新开发人员或年轻开发人员认为物理文件中的每个记录都必须相同,但在古代,恐龙在地球上行走,在一个文件中,可以有多种类型的记录或数据“记录格式”,因此,正如名称所示,记录格式是文件中记录的格式。

记录格式是你在旧学校学到的东西。你可以读取文件(表)并通过记录格式进行更新/写入

DSPFD FILE(myTable)

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

记录格式与书中描述的完全一样:它是一个I/O缓冲区。如果您熟悉C,它非常类似于struct()。记录格式为缓冲区内字段的特定排列提供了名称。虽然在
古代确实存在多种类型的记录,但AS/400系列系统中的物理数据库文件将只允许单一记录格式。记录格式“是这些系统中的一个特定术语,它表示一个特定的单记录结构。字段、表、模式等概念相对较新。在iSeries的旧版本中,这个概念并不存在。你有平面文件。使用此平面文件,必须在程序中定义记录格式。但是没关系。此讨论没有任何好处。不,AS/400系列系统上的平面文件始终具有单一(非结构化)记录格式。即使在今天,这一点也没有改变。但是,正如您所指出的,程序可以(并且仍然可以)提供覆盖文件记录格式的程序描述结构。查看外部文件描述将验证数据库中只存在一种记录格式;对于物理文件,程序中只能引用单个记录格式。但可以描述多个“记录名称”(与“记录格式”名称的定义不同)。