RPG语言基本语法
RPG基础教程

第一章物理文件和逻辑文件
第一节概述
物理文件用于存放数据,相当与数据库中的表的概念。物理文件一般由MEMBER编译产生后,但它的存在不会依赖MEMBER的存在。
源物理文件是特殊的物理文件,用于存放各类源代码的定义,在本章中若无特殊说明物理文件均指存放数据(RECORD)的物理文件(PF-DTA)。
物理文件的数据,受已经建立的逻辑文件影响,如非重复关键字或非重复关键字组合(即这些关键字能够唯一确定一条记录)。例如,要写重复记录到某物理文件,而存在对应的逻辑文件,
而这个逻辑文件存在非重复关键字(UNIQUE),尽管我们操作的是物理文件而不是逻辑文件,仍然会写入失败。
物理文件的删除,必须在删除建立在该物理文件上的逻辑文件删除之后。在需要重新编译物理文件时就需要注意了,因为重新编译物理文件也是在修改文件,如果存在对应的逻辑文件,那么编译会失败,因此需要先把逻辑文件删除,再编译物理文件。
在RPG程序中因为效率的原因,一般不使用物理文件进行操作。
使用SEU进行编辑产生的MEMBER不是物理文件,而是物理文件的定义
逻辑文件是物理文件的视图,逻辑文件依赖于物理文件,逻辑文件提供了对物理文件进行排序,过滤,筛选的方法,逻辑文件同时能够对物理文件的数据进行约束。
物理文件仅能有一个R +记录名,而逻辑文件允许有多个(但本业务系统不使用),逻辑文件过多将导致数据再写入和恢复数据时,重新建立索引的时间增加,逻辑文件也需要占用磁盘空间,根据索引(K+域名)的内容不同占用的磁盘空间也不同。
在RPG程序中较常使用逻辑文件。
另外,在编译逻辑文件时请注意,物理文件所在的库是否是在库列表中,否那么编译程序不到物理文件,而报错。
如果需要删除物理文件,请注意先删除逻辑文件,否那么将不能删除物理文件。
第二节物理文件的建立
一.二.1建立存放物理文件的库文件
CRTLIB  + Library的名字直接按默认的配置生成
或CRTLIB+F4,出现以下画面,并按图填入:
                            Create Library (CRTLIB)                         
Type choices, press Enter.                                                 
Library  . . . . . . . . . . . . > SSS          Name                       
Library type . . . . . . . . . .  *PROD        *PROD, *TEST               
Text 'description' . . . . . . .  这是一个用来测试的  Library
邯郸市人力资源招聘网
一.二.2建立存放源程序的源物理文件
CRTSRCPF+F4,出现以下画面,并按图填入:
                    Create Source Physical File (CRTSRCPF)                 
Type choices, press Enter.                                                 
File . . . . . . . . . . . . . .  wjdsrc        Name                       
  Library  . . . . . . . . . . .    sss        Name, *CURLIB             
Record length  . . . . . . . . .  92           Number                     
Member, if desired . . . . . . .  *NONE        Name, *NONE, *FILE         
User specified DBCS data . . . .  *yes          *NO, *YES                 
Text 'description' . . . . . . .    这是测试用的源文件
【注意】:User specified DBCS data 该项必须选择*yes,否那么在建立的SRCPF中将不能使用汉字