数据域DTAARA

数据域(*DTAARA)是系统对象中的一种类型。当建立了这种对象后,可以用来存入数据,以便任何程序进行读取和修改。数据域的典型用途如下:

数据域(*DTAARA)是系统对象中的一种类型。当建立了这种对象后,可以用来存入数据,以便任何程序进行读取和修改。数据域的典型用途如下:

  1. 提供用于几个程序中的常数字段,易于共享和修改。如:标题、说明等。
  2. 在一个作业中提供一个传递信息的区域。
  3. 在一个作业中提供一个字段作为控制参数,以便容易地得到修改。

image-20201012103910089

  • 修改数据区域的时候需要指定 位置 否则会自动覆盖之前的内容

SAVF

SAVF,全称 SAVE FILE,存储文件。可以将 SAVF 视为一个存储容器,它能够将指定的库,或指定的数据文件,或源代码保存在其中

SAVF 只用于备份与恢复。虽然通常这些事情是系统管理员做的,但是如果环境许可的情况下,开发人员能了解这些命令,自行做做备份,就可以更好地对程序进行测试、保护源码。当然,在使用 RESTORE 命令时,一定要谨慎谨慎再谨慎

建立SAVF

要使用 SAVF,首先我们当然需要建立一个 SAVF。如已有自己的 SAVF,可跳过此步。建立 SAVF的命令是:
CRTSAVF FILE(库名/SAVF 名)

清空 SAVF

使用 SAVF 前,必须保证 SAVF 是空的。SAVF 不能追加内容。新生成的 SAVF 一定的空的,不需要特别处理;
如果是已存在的 SAVF,需要使用 CLRSAVF 的命令,确保清空 SAVF
CLRSAVF FILE(库名/SAVF 名)

备份文件到 SAVF 中

备份库,使用下列命令来进行备份

SAVLIB LIB(要备份的库名) DEV(*SAVF) SAVF(SAVF 所在库名/SAVF 名) ACCPTH(*YES)

ACCPTH(*YES),表示备份时,备份存储路径。也就是对应于数据文件,将其逻辑文件的相关信息也备份下来,会增加备份时间与备份空间;但恢复时,不需要对逻辑文件重新建立索引,可以省很多时间。所以在备份数据文件建议加上这个参数。当然,如果是备份源代码,就不需要这个参数了

将指定的对象备份到 SAVF 中

SAVOBJ OBJ(对象名) LIB(对象所在的库) DEV(*SAVF) SAVF(SAVF 所在的库/SAVF名)
一次可以备份多个对象。如果是备份源码,那么 OBJ 就表示源码所在的 SRCFILE,MEMBER 项就是源码名。可以使用 F4键,来备份更多的对象,或更多的源码。

恢复文件

恢复已备份的库

RSTLIB SAVLIB(备份的库名) DEV(*SAVF) SAVF(SAVF 所在的库/SAVF 名) RSTLIB(恢复的库
名)
RSTLIB 这个参数,表示恢复的库名,其默认值等于“备份的库名”。也就是说,如果我将 FHSLIB整个库备份下来,再使用 RSTLIB 恢复,如果不更改 RSTLIB 中的值,那么将直接将 FHSLIB 整个都覆盖恢复;而如果指定 RSTLIB 的值为 OTHERLIB,那么将么把备份的 FHSLIB 的内容,覆盖恢复到指定的 OTHERLIB 库中

恢复对象

RSTOBJ OBJ(*ALL) SAVLIB(对象所在库) DEV(*SAVF) SAVF(SAVF 所在库名/SAVF 名) RSTLIB( 恢复的库名)
与 RSTLIB 类似。当然,OBJ 选项使用*ALL,表示恢复 SAVF 中备份的所有的对象,也可以指定只恢复单个/多个对象。