首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

数据域(DATA AREA)的运用

2012-08-15 
数据域(DATA AREA)的使用在AS400中,数据域是类型为*DTAARA的目标,永久存储在硬盘上面,由用户创建和删除,也

数据域(DATA AREA)的使用

在AS400中,数据域是类型为*DTAARA的目标,永久存储在硬盘上面,由用户创建和删除,也可以视为单一字段。

从操作系统的角度讲,当我们发出:CRTDTAARA DTAARA(TOTDTA) TYPE(*DEC) LEN(20)这条语句的之后,系统就开辟一个占用20个字符的连续空间;

从RPGLE程序的角度看,数据域就似一个缓冲池,我们可以用来临时存储程序中需要使用到的数据。下面是实例:

     FTEST02    CF   E             WORKSTN     DDST              DS                  DTAARA(DTARA)     DONE                             2A     DTWO                             6A     DTHREE                           2A     DFOUR                            6A     DFIVE                            3A     DSIX                             1A     DSUM              S              8S 0 INZ(0)     C*--------------     C* 程序控制     C*--------------     C                   EXSR      @MAIN     C                   EXSR      @EXIT     C*----------     C* @MAIN     C*----------     C     @MAIN         BEGSR     C                   EXFMT     DTST     C                   EVAL      DST=FLD001     C                   EVAL      SUM=%INT(ONE)+%INT(TWO)+%INT(THREE)     C                   EVAL      SUM=SUM+%INT(FOUR)+%INT(FIVE)+%INT(SIX)     C                   EVAL      FLD002=%CHAR(SUM)     C                   EVAL      FLD003=%SUBST(%CHAR(SUM):2:5)     C                   EVAL      FLD004=%CHAR(%SCAN('0':%CHAR(SUM):1))     C                   EVAL      FLD005=%CHAR(%SCAN('1':%CHAR(SUM):1))     C                   EXFMT     DTST     C                   ENDSR     C*---------     C* @EXIT     C*---------     C     @EXIT         BEGSR     C                   EVAL      *INLR='1'     C                   RETURN     C                   ENDSR

这里定义了一个数据结构DST,此DST对应了一个数据域;数据域中连续存储的字段,按照数据结构里面的字段分拆开来,

即可分配给这些字段值(如果数据域中存储有数据的话)。

在下面的操作:EVAL      DST=FLD001(这里FLD001是DSPF文件的一个字段,接受用户输入数字),

将输入的字符串数值直接赋值给连续的存储空间(数据域);

每一段对应着数据结构里面的每一个数据(当然得是可以转换的数值型字符串),

应该说数据结构里面的每个数据对应去数据域中截取属于自己的那部分(便于理解才这么描述);

之后数据结构里面的字段就有了值,然后才可以进行下面的计算。

热点排行