4、Lib

  

  在AS/400中,LIB 是指 Library,也就是库的意思,库是AS/400中用来存储和管理数据、程序等资源的主要方式之一。LIB常用于封装相关的对象,方便管理和维护。

  每个LIB都有一个名称,它会在AS/400系统中进行引用和调用。LIB名称通常是1-10个字母或数字的组合,其中开头字母需要是字母而不是数字。LIB是按照特定的规则层次化组织的,可以形成一个层次结构的树形结构。最上层为系统库,下一级为用户库,用户库可以包含多个LIB,也可以创建子LIB,子LIB又可以创建子子LIB,以此类推。Lib 也是 AS400 中特殊的对象,但 QSYS 是个特例,它并不是对象, 所有 LIB 均存储在这个系统库中。

一、LIB 分类  

  在AS/400中,库是用于存储和管理业务数据、程序对象和文档等资源的重要组件。根据用途和特性,库通常分为以下几种类型(SYS, USR, PRD, CUR):

  • 系统库(System Libraries):系统库是AS/400操作系统的一部分,包含了AS/400系统所需的基础资源和对象,例如命令、程序、消息文件等。系统库通常不允许用户进行修改和删除,只能进行部分的维护和配置。

  • 用户库(User Libraries):用户库是用户创建的库,用于存储用户自定义的资源和对象。具体来说,用户库可以用来存放程序对象、数据库文件、数据队列等,具体内容根据用户需求而定。用户库不仅方便用户进行管理和分类,也有助于提高数据和程序安全性(也可以简单的理解为非 IBM 提供的库,由用户创建即为用户库)

  • 产品库(Product Libraries):产品库是AS/400系统提供的一种特殊库,用于存储预编译的软件包。它包含AS/400操作系统和其他软件供应商提供的软件产品,例如IBM的iSeries Access产品的客户端软件和服务程序等。用户可以从产品库中选择相应的软件进行安装和升级。

  • 当前库(Current Library):当前库是一个特定的库,用于设置AS/400会话的默认库。当用户在AS/400系统中执行操作时,会话中的每个资源(如程序、数据文件等)都需要通过库名限定才能被正确地定位。如果用户未指定特定库,则会默认使用“当前库”作为自动限定库。也就是说,当用户执行某个操作时,AS/400系统会将默认库设置为当前库,从而免去了重复指定库的麻烦,也可以通过 CL 命令修改当前库。

 

 -- 还有一个非常常见的临时库 QTEMP ,伴随会话创建或删除 ; 

 -- 我们可以使用 DSPLIBL 查看当前系统库列表索引顺序和相关 LIB 分类 ; 

 -- LIB 的优先级由高到底依次为 :SYS -- PRD -- CUR -- Usr 

 

二、LIB 的特点 

  LIB是AS/400系统的重要组成部分,具有以下特点:

  • 与操作系统紧密集成:AS/400系统的所有对象,包括LIB,都与操作系统内核紧密集成,同时支持多种语言编写和访问。

  • 提供安全保护:AS/400系统使用访问控制策略保护LIB,可以限制不同用户对库中数据和程序的访问权限。

  • 管理数据和程序:用户使用LIB来组织和管理业务数据和程序资源。在LIB中可以包含多种类型的对象,例如物理文件、数据结构、程序等等。

  • 支持备份和恢复:AS/400系统可以对LIB进行备份和恢复,以防止数据丢失或意外停机等风险。

  总之,LIB在AS/400系统中具有非常重要的地位和作用,它可以为用户提供一个高效、安全和可靠的资源管理环境。

 

三、创建库

  使用 CL 命令 CRTLIB 创建 LIB :
  参数 :
    *Library   : 名字
    *Text   : 描述
    *Type      :
      PROD : 是受保护的,就是当你 Debug 的时候它不会改你的数据,当然你如果想改的话,可以在 Debug 的时候将 UPDPROD 的参数改成 *Yes;
      TEST : 是测试库,可能系统更新或者测试的时候数据会被删除,Debug 的 时候数据会被修改;

    *Authority: 指定词库的默认公共权限 。
      *EXCLUDE   : 用户无法访问库
      *USE    : 给 USE 一些权限,如读写,执行等 ;
      *CHANGE   : 该权限提供对象操作 (*OBJOPR)权限和所有数据权限,但仅限于有授权对象和所有者;
      *ALL     : 提供所有操作的权限,但仅限于该 lib 的所有者或指定 User, 可以更改 lib 是否存在,安全性,还可以更改 lib 的所有权;
      *LIBCRTAUT : 不建议使用这个参数,这个权限和 QSYS 的权限一样 ,当然基本没权限设置,所以不用顾虑;

    *ASP number : 指定为库分配存储的系统或基本用户辅助存储池 (ASP)的编号。当指定了 ASP 编号,则库中的所有对象都必须位于同一 ASP 中,但另外一个参数 ASPDEV 的值不是 *ASP 的时候,可以忽略 ASP 的值 ;
      1-32    :指定一个范围值,库的存储空间从系统辅助存储池 ASP num 中分配 ;
      *ASPDEV : 库的存储是从 ASPDEV的参数中获取的 ;(一般写这个就好了)

    *ASP Device :指定为库分配存储的辅助存储池 (ASP);
      *ASP : 存储池的位置将由参数 ASP number 决定 ;
      // 一般写 SIT HOST ,即目标地址 (eg : DAP004);
     

    // 这两个参数写一个值就可以了,它两存在一定的关联关系,(ASP Number & ASP Device)

 

四、显示库(DSPLIB)

  显示库相关的内容,大小,存储对象数目,存储方式,权限等相关信息;

 

五、使用库(WRKLIBPDM)

 

六、库列表

  AS400 访问数据均是通过库列表的顺序进行访问了,所以拥有良好层次结构的库列表就显得尤为重要。库列表,可以简单的理解为存放 libray 的列表。通过 CL命令 EDTLIBL 进行手动更改其内容和顺序,也可以通过访问 JOBD 的之后通过 CHGLIBL 命令进行库列表的更改,当然也可以使用改命令创建一个 CLLE 程序实现库列表的更新。

 

posted @ 2023-06-09 23:17  微成  阅读(432)  评论(0编辑  收藏  举报
浏览器标题切换
浏览器标题切换end