• OVRDBF的用法


    一般来说你在程序中F CARD中定义的FILE 我们假定是FILE A 那么在程序中所有的语句处理都是以FILE A的定义的字段处理,当运行程序是如果没有做其他操作,系统将默认打开FILE A的*FIRST MEM 作为读写的目标.
    如果此时你要读写的文件是个多MEM的PF希望用另外一个MEM作为读写目标,或者是另一个与FILE A 格式相同(注意)名称不同的文件,或者是另外一个LIB下的FILE A 同名的文件(如果不能修改LIBL的话) 这个时候就要用OVRDBF了.
    假定你需要使用的是FILE B MEM 为MBR
    OVRDBF FILE(FILEA) TOFILE(LIB/FILE B) MEM(MBR)
    这样的结果是所有对FILE A MEM(*FIRST)的读写操作实际上将是对 FILE B 的MEM MBR操作
    和OPNQRYF结合使用的.
    一般的用法是 有FILE A 和FILE B 有需求在处理中将这两个文件结合使用.
    此时先建个TEMP FILE C (PF)包含需要使用的 FILE A 和 FILE B 的字段,此PF是个空文件.
    在程序中使用FILE C
    在调用程序前
    1.在QTEMP 复制一个FILE C
    2OVRDBF QTEMP / FILE C  TOFILE( FILE C)
    OPNQRYF 将FILE A 和FILE B 按照FILE C的格式生成临时文件
    调用程序处理
    在QTEMP 建临时文件是为了避免多进程调用冲突.

    opnqryf命令本身Open options . . . . . . . . . . OPTION 有多种选择:*ALL, *INP, *OUT, *UPD, *DLT
    也就是生成的文件可供读/写/更新/删除操作
    从数据的完整性来说,ovrdbf是IBM把数据采集和程序分割开来的连接点:


                数据 ------>  |---------------|
                                         | ovrdbf        |
                    程序 -------> |---------------|   

    客户a在调用程序之前,采集了用query采集了数据集A,用默认member,定义ovrbdf,调用程序B;

    客户b在调用程序之前,采集了用query采集了数据集B,用b member,定义ovrdbf,调用程序B;

    如果,用相同member,定义ovrbdf,就会发上lock,和数据错误。

  • 相关阅读:
    mysql中delimiter
    error: unpacking of archive failed on file /usr/sbin/zabbix_agent;592e5bc3: cpio: open
    CefSharp中文帮助文档
    ASP.NET Aries 开发框架
    简洁的富文本编辑器
    asp.net core 获取appsettings.json里的配置
    在asp.net core中使用NLog
    临时禁用Resharper
    visual studio 无添加视图 选项
    visual studio(vs)初始化
  • 原文地址:https://www.cnblogs.com/mshwu/p/1248016.html
Copyright © 2020-2023  润新知